build: Introduce building of artifacts
We currently could (ab)use IMAGES for this task, but the downside is, that the filenames has filesystem tied to the filename, which might be confusing as the artifact itself don't has to be used with that specific filesystem. Another downside is, that the artifacts built with IMAGES target are build for every FILESYSTEMS filesystem. Consider following use case: define Device/apalis ... FILESYSTEMS := ext4 squashfs IMAGES := spl-uboot.bin recovery.scr IMAGE/spl-uboot.bin := append-uboot-spl | pad-to 68k | append-uboot IMAGE/recovery.scr := recovery-scr endef Where we would get target binaries with following filenames: openwrt-imx6-apalis-squashfs.recovery.scr openwrt-imx6-apalis-squashfs.spl-uboot.bin openwrt-imx6-apalis-ext4.recovery.scr openwrt-imx6-apalis-ext4.spl-uboot.bin With proposed patch, we could now just do: define Device/apalis ... ARTIFACTS := spl-uboot.bin recovery.scr ARTIFACT/spl-uboot.bin := append-uboot-spl | pad-to 68k | append-uboot ARTIFACT/recovery.scr := recovery-scr endef Which would produce target binaries with following filenames: openwrt-imx6-apalis-recovery.scr openwrt-imx6-apalis-spl-uboot.bin Signed-off-by: Petr Štetiar <ynezz@true.cz> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		 Petr Štetiar
					Petr Štetiar
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						John Crispin
					
				
			
						parent
						
							b0d6653ab8
						
					
				
				
					commit
					493c9a3551
				
			| @@ -321,6 +321,7 @@ define Device/Init | |||||||
|   CMDLINE:= |   CMDLINE:= | ||||||
|  |  | ||||||
|   IMAGES := |   IMAGES := | ||||||
|  |   ARTIFACTS := | ||||||
|   IMAGE_PREFIX := $(IMG_PREFIX)-$(1) |   IMAGE_PREFIX := $(IMG_PREFIX)-$(1) | ||||||
|   IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2) |   IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2) | ||||||
|   KERNEL_PREFIX = $$(IMAGE_PREFIX) |   KERNEL_PREFIX = $$(IMAGE_PREFIX) | ||||||
| @@ -498,6 +499,19 @@ define Device/Build/image | |||||||
|  |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define Device/Build/artifact | ||||||
|  |   $$(_TARGET): $(BIN_DIR)/$(IMAGE_PREFIX)-$(1) | ||||||
|  |   $(KDIR)/tmp/$(IMAGE_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) | ||||||
|  | 	@rm -f $$@ | ||||||
|  | 	$$(call concat_cmd,$(ARTIFACT/$(1))) | ||||||
|  |  | ||||||
|  |   .IGNORE: $(BIN_DIR)/$(IMAGE_PREFIX)-$(1) | ||||||
|  |  | ||||||
|  |   $(BIN_DIR)/$(IMAGE_PREFIX)-$(1): $(KDIR)/tmp/$(IMAGE_PREFIX)-$(1) | ||||||
|  | 	cp $$^ $$@ | ||||||
|  |  | ||||||
|  | endef | ||||||
|  |  | ||||||
| define Device/Build | define Device/Build | ||||||
|   $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1))) |   $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1))) | ||||||
|   $(call Device/Build/kernel,$(1)) |   $(call Device/Build/kernel,$(1)) | ||||||
| @@ -508,6 +522,10 @@ define Device/Build | |||||||
|   $$(eval $$(foreach image,$$(IMAGES), \ |   $$(eval $$(foreach image,$$(IMAGES), \ | ||||||
|     $$(foreach fs,$$(filter $(TARGET_FILESYSTEMS),$$(FILESYSTEMS)), \ |     $$(foreach fs,$$(filter $(TARGET_FILESYSTEMS),$$(FILESYSTEMS)), \ | ||||||
|       $$(call Device/Build/image,$$(fs),$$(image),$(1))))) |       $$(call Device/Build/image,$$(fs),$$(image),$(1))))) | ||||||
|  |  | ||||||
|  |   $$(eval $$(foreach artifact,$$(ARTIFACTS), \ | ||||||
|  |     $$(call Device/Build/artifact,$$(artifact)))) | ||||||
|  |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Device/DumpInfo | define Device/DumpInfo | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user