aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2018-11-23 10:53:37 +0100
committerJohn Crispin <john@phrozen.org>2018-11-26 09:39:20 +0100
commit493c9a35516c27a8ec412d97e63c8cf6f41a57ea (patch)
tree98ec22b24840af0afc0224499d2416f608390534
parentb0d6653ab8d4c65aca73c0d845ec4056da97d4ec (diff)
downloadupstream-493c9a35516c27a8ec412d97e63c8cf6f41a57ea.tar.gz
upstream-493c9a35516c27a8ec412d97e63c8cf6f41a57ea.tar.bz2
upstream-493c9a35516c27a8ec412d97e63c8cf6f41a57ea.zip
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>
-rw-r--r--include/image.mk18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/image.mk b/include/image.mk
index f2a85f6feb..a2b106d909 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -321,6 +321,7 @@ define Device/Init
CMDLINE:=
IMAGES :=
+ ARTIFACTS :=
IMAGE_PREFIX := $(IMG_PREFIX)-$(1)
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2)
KERNEL_PREFIX = $$(IMAGE_PREFIX)
@@ -498,6 +499,19 @@ define Device/Build/image
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
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1)))
$(call Device/Build/kernel,$(1))
@@ -508,6 +522,10 @@ define Device/Build
$$(eval $$(foreach image,$$(IMAGES), \
$$(foreach fs,$$(filter $(TARGET_FILESYSTEMS),$$(FILESYSTEMS)), \
$$(call Device/Build/image,$$(fs),$$(image),$(1)))))
+
+ $$(eval $$(foreach artifact,$$(ARTIFACTS), \
+ $$(call Device/Build/artifact,$$(artifact))))
+
endef
define Device/DumpInfo