image.mk: split off all Build/* commands into image-commands.mk
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		
							
								
								
									
										150
									
								
								include/image-commands.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								include/image-commands.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,150 @@ | |||||||
|  | # Build commands that can be called from Device/* templates | ||||||
|  |  | ||||||
|  | define Build/uImage | ||||||
|  | 	mkimage -A $(LINUX_KARCH) \ | ||||||
|  | 		-O linux -T kernel \ | ||||||
|  | 		-C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ | ||||||
|  | 		-n '$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/netgear-chk | ||||||
|  | 	$(STAGING_DIR_HOST)/bin/mkchkimg \ | ||||||
|  | 		-o $@.new \ | ||||||
|  | 		-k $@ \ | ||||||
|  | 		-b $(NETGEAR_BOARD_ID) \ | ||||||
|  | 		-r $(NETGEAR_REGION) | ||||||
|  | 	mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/netgear-dni | ||||||
|  | 	$(STAGING_DIR_HOST)/bin/mkdniimg \ | ||||||
|  | 		-B $(NETGEAR_BOARD_ID) -v LEDE.$(REVISION) \ | ||||||
|  | 		$(if $(NETGEAR_HW_ID),-H $(NETGEAR_HW_ID)) \ | ||||||
|  | 		-r "$(1)" \ | ||||||
|  | 		-i $@ -o $@.new | ||||||
|  | 	mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/tplink-safeloader | ||||||
|  |        -$(STAGING_DIR_HOST)/bin/tplink-safeloader \ | ||||||
|  | 		-B $(TPLINK_BOARD_NAME) \ | ||||||
|  | 		-V $(REVISION) \ | ||||||
|  | 		-k $(word 1,$^) \ | ||||||
|  | 		-r $@ \ | ||||||
|  | 		-o $@.new \ | ||||||
|  | 		-j \ | ||||||
|  | 		$(wordlist 2,$(words $(1)),$(1)) \ | ||||||
|  | 		$(if $(findstring sysupgrade,$(word 1,$(1))),-S) && mv $@.new $@ || rm -f $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/fit | ||||||
|  | 	$(TOPDIR)/scripts/mkits.sh \ | ||||||
|  | 		-D $(DEVICE_NAME) -o $@.its -k $@ \ | ||||||
|  | 		$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ | ||||||
|  | 		-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ | ||||||
|  | 		-A $(ARCH) -v $(LINUX_VERSION) | ||||||
|  | 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/lzma | ||||||
|  | 	$(call Build/lzma-no-dict,-lc1 -lp2 -pb2 $(1)) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/lzma-no-dict | ||||||
|  | 	$(STAGING_DIR_HOST)/bin/lzma e $@ $(1) $@.new | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/gzip | ||||||
|  | 	gzip -9n -c $@ $(1) > $@.new | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/jffs2 | ||||||
|  | 	rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \ | ||||||
|  | 		mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \ | ||||||
|  | 		cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \ | ||||||
|  | 		$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \ | ||||||
|  | 			$(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \ | ||||||
|  | 			--squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \ | ||||||
|  | 			-o $@.new \ | ||||||
|  | 			-d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \ | ||||||
|  | 			2>&1 1>/dev/null | awk '/^.+$$$$/' && \ | ||||||
|  | 		$(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE)) | ||||||
|  | 	-rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/ | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/kernel-bin | ||||||
|  | 	rm -f $@ | ||||||
|  | 	cp $< $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/patch-cmdline | ||||||
|  | 	$(STAGING_DIR_HOST)/bin/patch-cmdline $@ '$(CMDLINE)' | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/append-kernel | ||||||
|  | 	dd if=$(word 1,$^) $(if $(1),bs=$(1) conv=sync) >> $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/append-rootfs | ||||||
|  | 	dd if=$(word 2,$^) $(if $(1),bs=$(1) conv=sync) >> $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/append-ubi | ||||||
|  | 	sh $(TOPDIR)/scripts/ubinize-image.sh \ | ||||||
|  | 		$(if $(UBOOTENV_IN_UBI),--uboot-env) \ | ||||||
|  | 		$(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \ | ||||||
|  | 		$(word 2,$^) \ | ||||||
|  | 		$@.tmp \ | ||||||
|  | 		-p $(BLOCKSIZE) -m $(PAGESIZE) -E 5 \ | ||||||
|  | 		$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) | ||||||
|  | 	cat $@.tmp >> $@ | ||||||
|  | 	rm $@.tmp | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/pad-to | ||||||
|  | 	dd if=$@ of=$@.new bs=$(1) conv=sync | ||||||
|  | 	mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/pad-rootfs | ||||||
|  | 	$(STAGING_DIR_HOST)/bin/padjffs2 $@ $(1) 4 8 16 64 128 256 | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/pad-offset | ||||||
|  | 	let \ | ||||||
|  | 		size="$$(stat -c%s $@)" \ | ||||||
|  | 		pad="$(word 1, $(1))" \ | ||||||
|  | 		offset="$(word 2, $(1))" \ | ||||||
|  | 		pad="(pad - ((size + offset) % pad)) % pad" \ | ||||||
|  | 		newsize='size + pad'; \ | ||||||
|  | 		dd if=$@ of=$@.new bs=$$newsize count=1 conv=sync | ||||||
|  | 	mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/check-size | ||||||
|  | 	@[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \ | ||||||
|  | 		echo "WARNING: Image file $@ is too big" >&2; \ | ||||||
|  | 		rm -f $@; \ | ||||||
|  | 	} | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/combined-image | ||||||
|  | 	-sh $(TOPDIR)/scripts/combined-image.sh \ | ||||||
|  | 		"$(word 1,$^)" \ | ||||||
|  | 		"$@" \ | ||||||
|  | 		"$@.new" | ||||||
|  | 	@mv $@.new $@ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/sysupgrade-nand | ||||||
|  | 	sh $(TOPDIR)/scripts/sysupgrade-nand.sh \ | ||||||
|  | 		--board $(if $(BOARD_NAME),$(BOARD_NAME),$(DEVICE_NAME)) \ | ||||||
|  | 		--kernel $(word 1,$^) \ | ||||||
|  | 		--rootfs $(word 2,$^) \ | ||||||
|  | 		$@ | ||||||
|  | endef | ||||||
							
								
								
									
										151
									
								
								include/image.mk
									
									
									
									
									
								
							
							
						
						
									
										151
									
								
								include/image.mk
									
									
									
									
									
								
							| @@ -10,6 +10,7 @@ include $(INCLUDE_DIR)/prereq.mk | |||||||
| include $(INCLUDE_DIR)/kernel.mk | include $(INCLUDE_DIR)/kernel.mk | ||||||
| include $(INCLUDE_DIR)/host.mk | include $(INCLUDE_DIR)/host.mk | ||||||
| include $(INCLUDE_DIR)/version.mk | include $(INCLUDE_DIR)/version.mk | ||||||
|  | include $(INCLUDE_DIR)/image-commands.mk | ||||||
|  |  | ||||||
| override MAKE:=$(_SINGLE)$(SUBMAKE) | override MAKE:=$(_SINGLE)$(SUBMAKE) | ||||||
| override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE) | override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE) | ||||||
| @@ -293,156 +294,6 @@ define BuildImage/mkfs | |||||||
|  |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| # Build commands that can be called from Device/* templates |  | ||||||
| define Build/uImage |  | ||||||
| 	mkimage -A $(LINUX_KARCH) \ |  | ||||||
| 		-O linux -T kernel \ |  | ||||||
| 		-C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ |  | ||||||
| 		-n '$(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/netgear-chk |  | ||||||
| 	$(STAGING_DIR_HOST)/bin/mkchkimg \ |  | ||||||
| 		-o $@.new \ |  | ||||||
| 		-k $@ \ |  | ||||||
| 		-b $(NETGEAR_BOARD_ID) \ |  | ||||||
| 		-r $(NETGEAR_REGION) |  | ||||||
| 	mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/netgear-dni |  | ||||||
| 	$(STAGING_DIR_HOST)/bin/mkdniimg \ |  | ||||||
| 		-B $(NETGEAR_BOARD_ID) -v LEDE.$(REVISION) \ |  | ||||||
| 		$(if $(NETGEAR_HW_ID),-H $(NETGEAR_HW_ID)) \ |  | ||||||
| 		-r "$(1)" \ |  | ||||||
| 		-i $@ -o $@.new |  | ||||||
| 	mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/tplink-safeloader |  | ||||||
|        -$(STAGING_DIR_HOST)/bin/tplink-safeloader \ |  | ||||||
| 		-B $(TPLINK_BOARD_NAME) \ |  | ||||||
| 		-V $(REVISION) \ |  | ||||||
| 		-k $(word 1,$^) \ |  | ||||||
| 		-r $@ \ |  | ||||||
| 		-o $@.new \ |  | ||||||
| 		-j \ |  | ||||||
| 		$(wordlist 2,$(words $(1)),$(1)) \ |  | ||||||
| 		$(if $(findstring sysupgrade,$(word 1,$(1))),-S) && mv $@.new $@ || rm -f $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/fit |  | ||||||
| 	$(TOPDIR)/scripts/mkits.sh \ |  | ||||||
| 		-D $(DEVICE_NAME) -o $@.its -k $@ \ |  | ||||||
| 		$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ |  | ||||||
| 		-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ |  | ||||||
| 		-A $(ARCH) -v $(LINUX_VERSION) |  | ||||||
| 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/lzma |  | ||||||
| 	$(call Build/lzma-no-dict,-lc1 -lp2 -pb2 $(1)) |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/lzma-no-dict |  | ||||||
| 	$(STAGING_DIR_HOST)/bin/lzma e $@ $(1) $@.new |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/gzip |  | ||||||
| 	gzip -9n -c $@ $(1) > $@.new |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/jffs2 |  | ||||||
| 	rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \ |  | ||||||
| 		mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \ |  | ||||||
| 		cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \ |  | ||||||
| 		$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \ |  | ||||||
| 			$(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \ |  | ||||||
| 			--squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \ |  | ||||||
| 			-o $@.new \ |  | ||||||
| 			-d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \ |  | ||||||
| 			2>&1 1>/dev/null | awk '/^.+$$$$/' && \ |  | ||||||
| 		$(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE)) |  | ||||||
| 	-rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/ |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/kernel-bin |  | ||||||
| 	rm -f $@ |  | ||||||
| 	cp $< $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/patch-cmdline |  | ||||||
| 	$(STAGING_DIR_HOST)/bin/patch-cmdline $@ '$(CMDLINE)' |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/append-kernel |  | ||||||
| 	dd if=$(word 1,$^) $(if $(1),bs=$(1) conv=sync) >> $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/append-rootfs |  | ||||||
| 	dd if=$(word 2,$^) $(if $(1),bs=$(1) conv=sync) >> $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/append-ubi |  | ||||||
| 	sh $(TOPDIR)/scripts/ubinize-image.sh \ |  | ||||||
| 		$(if $(UBOOTENV_IN_UBI),--uboot-env) \ |  | ||||||
| 		$(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \ |  | ||||||
| 		$(word 2,$^) \ |  | ||||||
| 		$@.tmp \ |  | ||||||
| 		-p $(BLOCKSIZE) -m $(PAGESIZE) -E 5 \ |  | ||||||
| 		$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) |  | ||||||
| 	cat $@.tmp >> $@ |  | ||||||
| 	rm $@.tmp |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/pad-to |  | ||||||
| 	dd if=$@ of=$@.new bs=$(1) conv=sync |  | ||||||
| 	mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/pad-rootfs |  | ||||||
| 	$(call prepare_generic_squashfs,$@ $(1)) |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/pad-offset |  | ||||||
| 	let \ |  | ||||||
| 		size="$$(stat -c%s $@)" \ |  | ||||||
| 		pad="$(word 1, $(1))" \ |  | ||||||
| 		offset="$(word 2, $(1))" \ |  | ||||||
| 		pad="(pad - ((size + offset) % pad)) % pad" \ |  | ||||||
| 		newsize='size + pad'; \ |  | ||||||
| 		dd if=$@ of=$@.new bs=$$newsize count=1 conv=sync |  | ||||||
| 	mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/check-size |  | ||||||
| 	@[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \ |  | ||||||
| 		echo "WARNING: Image file $@ is too big" >&2; \ |  | ||||||
| 		rm -f $@; \ |  | ||||||
| 	} |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/combined-image |  | ||||||
| 	-sh $(TOPDIR)/scripts/combined-image.sh \ |  | ||||||
| 		"$(word 1,$^)" \ |  | ||||||
| 		"$@" \ |  | ||||||
| 		"$@.new" |  | ||||||
| 	@mv $@.new $@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/sysupgrade-nand |  | ||||||
| 	sh $(TOPDIR)/scripts/sysupgrade-nand.sh \ |  | ||||||
| 		--board $(if $(BOARD_NAME),$(BOARD_NAME),$(DEVICE_NAME)) \ |  | ||||||
| 		--kernel $(word 1,$^) \ |  | ||||||
| 		--rootfs $(word 2,$^) \ |  | ||||||
| 		$@ |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Device/Init | define Device/Init | ||||||
|   PROFILES := $(PROFILE) |   PROFILES := $(PROFILE) | ||||||
|   DEVICE_NAME := $(1) |   DEVICE_NAME := $(1) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau