Skip to content

Commit b47dc84

Browse files
committed
build: move Build/copy-file to image-commands.mk
1 parent 06fa03c commit b47dc84

File tree

2 files changed

+142
-43
lines changed

2 files changed

+142
-43
lines changed

include/image-commands.mk

+96-21
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ IMAGE_KERNEL = $(word 1,$^)
44
IMAGE_ROOTFS = $(word 2,$^)
55

66
define ModelNameLimit16
7-
$(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16)
7+
$(shell printf %.16s "$(word 2, $(subst _, ,$(1)))")
88
endef
99

1010
define rootfs_align
@@ -27,8 +27,21 @@ define Build/append-kernel
2727
dd if=$(IMAGE_KERNEL) >> $@
2828
endef
2929

30+
define Build/package-kernel-ubifs
31+
mkdir $@.kernelubifs
32+
cp $@ $@.kernelubifs/kernel
33+
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
34+
$(KERNEL_UBIFS_OPTS) \
35+
-r $@.kernelubifs $@
36+
rm -r $@.kernelubifs
37+
endef
38+
3039
define Build/append-image
31-
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) >> $@
40+
cp "$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)" "$@.stripmeta"
41+
fwtool -s /dev/null -t "$@.stripmeta" || :
42+
fwtool -i /dev/null -t "$@.stripmeta" || :
43+
dd if="$@.stripmeta" >> "$@"
44+
rm "$@.stripmeta"
3245
endef
3346

3447
ifdef IB
@@ -37,8 +50,12 @@ define Build/append-image-stage
3750
endef
3851
else
3952
define Build/append-image-stage
40-
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) of=$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1)
41-
dd if=$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1) >> $@
53+
cp "$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)" "$@.stripmeta"
54+
fwtool -s /dev/null -t "$@.stripmeta" || :
55+
fwtool -i /dev/null -t "$@.stripmeta" || :
56+
dd if="$@.stripmeta" of="$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1)"
57+
dd if="$@.stripmeta" >> "$@"
58+
rm "$@.stripmeta"
4259
endef
4360
endif
4461

@@ -72,6 +89,7 @@ metadata_json = \
7289

7390
define Build/append-metadata
7491
$(if $(SUPPORTED_DEVICES),-echo $(call metadata_json) | fwtool -I - $@)
92+
sha256sum "$@" | cut -d" " -f1 > "$@.sha256sum"
7593
[ ! -s "$(BUILD_KEY)" -o ! -s "$(BUILD_KEY).ucert" -o ! -s "$@" ] || { \
7694
cp "$(BUILD_KEY).ucert" "$@.ucert" ;\
7795
usign -S -m "$@" -s "$(BUILD_KEY)" -x "$@.sig" ;\
@@ -94,6 +112,15 @@ define Build/append-squashfs-fakeroot-be
94112
cat $@.fakesquashfs >> $@
95113
endef
96114

115+
define Build/append-squashfs4-fakeroot
116+
rm -rf $@.fakefs $@.fakesquashfs
117+
mkdir $@.fakefs
118+
$(STAGING_DIR_HOST)/bin/mksquashfs4 \
119+
$@.fakefs $@.fakesquashfs \
120+
-nopad -noappend -root-owned
121+
cat $@.fakesquashfs >> $@
122+
endef
123+
97124
define Build/append-string
98125
echo -n $(1) >> $@
99126
endef
@@ -103,7 +130,7 @@ define Build/append-ubi
103130
$(if $(UBOOTENV_IN_UBI),--uboot-env) \
104131
$(if $(KERNEL_IN_UBI),--kernel $(IMAGE_KERNEL)) \
105132
$(foreach part,$(UBINIZE_PARTS),--part $(part)) \
106-
$(IMAGE_ROOTFS) \
133+
--rootfs $(IMAGE_ROOTFS) \
107134
$@.tmp \
108135
-p $(BLOCKSIZE:%k=%KiB) -m $(PAGESIZE) \
109136
$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) \
@@ -113,6 +140,18 @@ define Build/append-ubi
113140
rm $@.tmp
114141
endef
115142

143+
define Build/ubinize-kernel
144+
cp $@ $@.tmp
145+
sh $(TOPDIR)/scripts/ubinize-image.sh \
146+
--kernel $@.tmp \
147+
$@ \
148+
-p $(BLOCKSIZE:%k=%KiB) -m $(PAGESIZE) \
149+
$(if $(SUBPAGESIZE),-s $(SUBPAGESIZE)) \
150+
$(if $(VID_HDR_OFFSET),-O $(VID_HDR_OFFSET)) \
151+
$(UBINIZE_OPTS)
152+
rm $@.tmp
153+
endef
154+
116155
define Build/append-uboot
117156
dd if=$(UBOOT_PATH) >> $@
118157
endef
@@ -170,11 +209,15 @@ define Build/check-size
170209
@imagesize="$$(stat -c%s $@)"; \
171210
limitsize="$$(($(subst k,* 1024,$(subst m, * 1024k,$(if $(1),$(1),$(IMAGE_SIZE))))))"; \
172211
[ $$limitsize -ge $$imagesize ] || { \
173-
echo "WARNING: Image file $@ is too big: $$imagesize > $$limitsize" >&2; \
212+
$(call ERROR_MESSAGE, WARNING: Image file $@ is too big: $$imagesize > $$limitsize); \
174213
rm -f $@; \
175214
}
176215
endef
177216

217+
define Build/copy-file
218+
cat "$(1)" > "$@"
219+
endef
220+
178221
define Build/elecom-product-header
179222
$(eval product=$(word 1,$(1)))
180223
$(eval fw=$(if $(word 2,$(1)),$(word 2,$(1)),$@))
@@ -187,6 +230,19 @@ define Build/elecom-product-header
187230
mv $(fw).new $(fw)
188231
endef
189232

233+
define Build/elecom-wrc-gs-factory
234+
$(eval product=$(word 1,$(1)))
235+
$(eval version=$(word 2,$(1)))
236+
$(eval hash_opt=$(word 3,$(1)))
237+
$(MKHASH) md5 $(hash_opt) $@ >> $@
238+
( \
239+
echo -n "ELECOM $(product) v$(version)" | \
240+
dd bs=32 count=1 conv=sync; \
241+
dd if=$@; \
242+
) > $@.new
243+
mv $@.new $@
244+
endef
245+
190246
define Build/elx-header
191247
$(eval hw_id=$(word 1,$(1)))
192248
$(eval xor_pattern=$(word 2,$(1)))
@@ -223,15 +279,18 @@ endef
223279
define Build/fit
224280
$(TOPDIR)/scripts/mkits.sh \
225281
-D $(DEVICE_NAME) -o $@.its -k $@ \
226-
-C $(word 1,$(1)) $(if $(word 2,$(1)),\
227-
$(if $(DEVICE_DTS_OVERLAY),-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))),\
228-
-d $(word 2,$(1)))) \
282+
-C $(word 1,$(1)) \
283+
$(if $(word 2,$(1)),\
284+
$(if $(findstring 11,$(if $(DEVICE_DTS_OVERLAY),1)$(if $(findstring $(KERNEL_BUILD_DIR)/image-,$(word 2,$(1))),,1)), \
285+
-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))), \
286+
-d $(word 2,$(1)))) \
229287
$(if $(findstring with-rootfs,$(word 3,$(1))),-r $(IMAGE_ROOTFS)) \
230288
$(if $(findstring with-initrd,$(word 3,$(1))), \
231289
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \
232290
-i $(KERNEL_BUILD_DIR)/initrd.cpio$(strip $(call Build/initrd_compression)))) \
233291
-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
234292
$(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
293+
$(if $(DEVICE_DTS_DELIMITER),-l $(DEVICE_DTS_DELIMITER)) \
235294
$(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtb)) \
236295
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
237296
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
@@ -256,6 +315,16 @@ define Build/install-dtb
256315
)
257316
endef
258317

318+
define Build/iptime-crc32
319+
$(STAGING_DIR_HOST)/bin/iptime-crc32 $(1) $@ $@.new
320+
mv $@.new $@
321+
endef
322+
323+
define Build/iptime-naspkg
324+
$(STAGING_DIR_HOST)/bin/iptime-naspkg $(1) $@ $@.new
325+
mv $@.new $@
326+
endef
327+
259328
define Build/jffs2
260329
rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \
261330
mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \
@@ -318,6 +387,19 @@ define Build/netgear-dni
318387
mv $@.new $@
319388
endef
320389

390+
define Build/netgear-encrypted-factory
391+
$(TOPDIR)/scripts/netgear-encrypted-factory.py \
392+
--input-file $@ \
393+
--output-file $@ \
394+
--model $(NETGEAR_ENC_MODEL) \
395+
--region $(NETGEAR_ENC_REGION) \
396+
--version V1.0.0.0.$(VERSION_DIST).$(firstword $(subst -, ,$(REVISION))) \
397+
--encryption-block-size 0x20000 \
398+
--openssl-bin "$(STAGING_DIR_HOST)/bin/openssl" \
399+
--key 6865392d342b4d212964363d6d7e7765312c7132613364316e26322a5a5e2538 \
400+
--iv 4a253169516c38243d6c6d2d3b384145
401+
endef
402+
321403
define Build/openmesh-image
322404
$(TOPDIR)/scripts/om-fwupgradecfg-gen.sh \
323405
"$(call param_get_default,ce_type,$(1),$(DEVICE_NAME))" \
@@ -370,13 +452,6 @@ define Build/qemu-image
370452
fi
371453
endef
372454

373-
define Build/qsdk-ipq-factory-mmc
374-
$(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \
375-
$@.its kernel $(IMAGE_KERNEL) rootfs $(IMAGE_ROOTFS)
376-
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
377-
@mv $@.new $@
378-
endef
379-
380455
define Build/qsdk-ipq-factory-nand
381456
$(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \
382457
$@.its ubi $@
@@ -496,12 +571,12 @@ define Build/xor-image
496571
endef
497572

498573
define Build/zip
574+
rm -rf $@.tmp
499575
mkdir $@.tmp
500-
mv $@ $@.tmp/$(1)
501-
502-
zip -j -X \
503-
$(if $(SOURCE_DATE_EPOCH),--mtime="$(SOURCE_DATE_EPOCH)") \
504-
$@ $@.tmp/$(if $(1),$(1),$@)
576+
mv $@ $@.tmp/$(word 1,$(1))
577+
TZ=UTC $(STAGING_DIR_HOST)/bin/zip -j -X \
578+
$(wordlist 2,$(words $(1)),$(1)) \
579+
$@ $@.tmp/$(if $(word 1,$(1)),$(word 1,$(1)),$$(basename $@))
505580
rm -rf $@.tmp
506581
endef
507582

include/image.mk

+46-22
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,6 @@ define Image/BuildKernel/MkuImage
137137
-n '$(call toupper,$(ARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' -d $(4) $(5)
138138
endef
139139

140-
define Image/BuildKernel/MkFIT
141-
$(TOPDIR)/scripts/mkits.sh \
142-
-D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \
143-
-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
144-
-A $(LINUX_KARCH) -v $(LINUX_VERSION)
145-
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb
146-
endef
147-
148140
ifdef CONFIG_TARGET_IMAGES_GZIP
149141
define Image/Gzip
150142
rm -f $(1).gz
@@ -230,8 +222,7 @@ $(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))
230222
define Image/mkfs/squashfs-common
231223
$(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
232224
-nopad -noappend -root-owned \
233-
-comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \
234-
-processors $(shell nproc)
225+
-comp $(SQUASHFSCOMP) $(SQUASHFSOPT)
235226
endef
236227

237228
ifeq ($(CONFIG_TARGET_ROOTFS_SECURITY_LABELS),y)
@@ -395,6 +386,7 @@ define Device/Init
395386

396387
DEVICE_DTS :=
397388
DEVICE_DTS_CONFIG :=
389+
DEVICE_DTS_DELIMITER :=
398390
DEVICE_DTS_DIR :=
399391
DEVICE_DTS_OVERLAY :=
400392
DEVICE_FDT_NUM :=
@@ -420,8 +412,8 @@ DEFAULT_DEVICE_VARS := \
420412
DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \
421413
CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
422414
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
423-
DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_DTS_OVERLAY DEVICE_FDT_NUM \
424-
DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
415+
DEVICE_DTS_CONFIG DEVICE_DTS_DELIMITER DEVICE_DTS_DIR DEVICE_DTS_OVERLAY \
416+
DEVICE_FDT_NUM DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
425417
SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
426418
UBOOT_PATH IMAGE_SIZE \
427419
DEVICE_PACKAGES DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
@@ -493,11 +485,11 @@ define Device/Build/initramfs
493485
$(BUILD_DIR)/json_info_files/$$(KERNEL_INITRAMFS_IMAGE).json: $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
494486
@mkdir -p $$(shell dirname $$@)
495487
DEVICE_ID="$(1)" \
496-
BIN_DIR="$(BIN_DIR)" \
497488
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
498-
DEVICE_IMG_NAME="$$(notdir $$^)" \
499-
IMAGE_TYPE="kernel" \
500-
IMAGE_FILESYSTEM="initramfs" \
489+
FILE_NAME="$$(notdir $$^)" \
490+
FILE_DIR="$(KDIR)/tmp" \
491+
FILE_TYPE="kernel" \
492+
FILE_FILESYSTEM="initramfs" \
501493
DEVICE_IMG_PREFIX="$$(DEVICE_IMG_PREFIX)" \
502494
DEVICE_VENDOR="$$(DEVICE_VENDOR)" \
503495
DEVICE_MODEL="$$(DEVICE_MODEL)" \
@@ -525,7 +517,7 @@ endif
525517
define Device/Build/compile
526518
$$(_COMPILE_TARGET): $(KDIR)/$(1)
527519
$(eval $(call Device/Export,$(KDIR)/$(1)))
528-
$(KDIR)/$(1):
520+
$(KDIR)/$(1): FORCE
529521
$$(call concat_cmd,$(COMPILE/$(1)))
530522

531523
endef
@@ -600,11 +592,11 @@ define Device/Build/image
600592
$(BUILD_DIR)/json_info_files/$(call DEVICE_IMG_NAME,$(1),$(2)).json: $(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2))$$(GZ_SUFFIX)
601593
@mkdir -p $$(shell dirname $$@)
602594
DEVICE_ID="$(DEVICE_NAME)" \
603-
BIN_DIR="$(BIN_DIR)" \
604595
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
605-
DEVICE_IMG_NAME="$(DEVICE_IMG_NAME)" \
606-
IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
607-
IMAGE_FILESYSTEM="$(1)" \
596+
FILE_NAME="$(DEVICE_IMG_NAME)" \
597+
FILE_DIR="$(KDIR)/tmp" \
598+
FILE_TYPE=$(word 1,$(subst ., ,$(2))) \
599+
FILE_FILESYSTEM="$(1)" \
608600
DEVICE_IMG_PREFIX="$(DEVICE_IMG_PREFIX)" \
609601
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
610602
DEVICE_MODEL="$(DEVICE_MODEL)" \
@@ -630,7 +622,9 @@ define Device/Build/image
630622
endef
631623

632624
define Device/Build/artifact
633-
$$(_TARGET): $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
625+
$$(_TARGET): $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \
626+
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
627+
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
634628
$(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
635629
$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(2)-images
636630
@rm -f $$@
@@ -641,6 +635,35 @@ define Device/Build/artifact
641635
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1): $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)
642636
cp $$^ $$@
643637

638+
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json: $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
639+
@mkdir -p $$(shell dirname $$@)
640+
DEVICE_ID="$(DEVICE_NAME)" \
641+
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
642+
FILE_NAME="$(DEVICE_IMG_PREFIX)-$(1)" \
643+
FILE_DIR="$(KDIR)/tmp" \
644+
FILE_TYPE="$(1)" \
645+
DEVICE_IMG_PREFIX="$(DEVICE_IMG_PREFIX)" \
646+
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
647+
DEVICE_MODEL="$(DEVICE_MODEL)" \
648+
DEVICE_VARIANT="$(DEVICE_VARIANT)" \
649+
DEVICE_ALT0_VENDOR="$(DEVICE_ALT0_VENDOR)" \
650+
DEVICE_ALT0_MODEL="$(DEVICE_ALT0_MODEL)" \
651+
DEVICE_ALT0_VARIANT="$(DEVICE_ALT0_VARIANT)" \
652+
DEVICE_ALT1_VENDOR="$(DEVICE_ALT1_VENDOR)" \
653+
DEVICE_ALT1_MODEL="$(DEVICE_ALT1_MODEL)" \
654+
DEVICE_ALT1_VARIANT="$(DEVICE_ALT1_VARIANT)" \
655+
DEVICE_ALT2_VENDOR="$(DEVICE_ALT2_VENDOR)" \
656+
DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
657+
DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
658+
DEVICE_TITLE="$(DEVICE_TITLE)" \
659+
DEVICE_PACKAGES="$(DEVICE_PACKAGES)" \
660+
TARGET="$(BOARD)" \
661+
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
662+
VERSION_NUMBER="$(VERSION_NUMBER)" \
663+
VERSION_CODE="$(VERSION_CODE)" \
664+
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
665+
$(TOPDIR)/scripts/json_add_image_info.py $$@
666+
644667
endef
645668

646669
define Device/Build
@@ -733,6 +756,7 @@ define BuildImage
733756

734757
else
735758
image_prepare:
759+
rm -rf $(KDIR)/tmp
736760
mkdir -p $(BIN_DIR) $(KDIR)/tmp
737761
endif
738762

0 commit comments

Comments
 (0)