X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=include%2Fimage.mk;h=f2a85f6feb9fb7b062da9a8a3e3d28b2028bace0;hp=65f9b0e96dfc7df1be43383a52cf40ec64995274;hb=1f14ac9a0c93353c14b4d48e0bda498728c53117;hpb=84bd74057f0d2543ddbc7de2351b0a310df329c6 diff --git a/include/image.mk b/include/image.mk index 65f9b0e96d..f2a85f6feb 100644 --- a/include/image.mk +++ b/include/image.mk @@ -8,7 +8,6 @@ override TARGET_BUILD= include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/kernel.mk -include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/image-commands.mk @@ -19,10 +18,8 @@ ifndef IB endif include $(INCLUDE_DIR)/image-legacy.mk - -ifdef TARGET_PER_DEVICE_ROOTFS - include $(INCLUDE_DIR)/rootfs.mk -endif +include $(INCLUDE_DIR)/feeds.mk +include $(INCLUDE_DIR)/rootfs.mk override MAKE:=$(_SINGLE)$(SUBMAKE) override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE) @@ -137,16 +134,24 @@ endef define Image/BuildKernel/MkuImage mkimage -A $(ARCH) -O linux -T kernel -C $(1) -a $(2) -e $(3) \ - -n '$(call toupper,$(ARCH)) LEDE Linux-$(LINUX_VERSION)' -d $(4) $(5) + -n '$(call toupper,$(ARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' -d $(4) $(5) endef define Image/BuildKernel/MkFIT $(TOPDIR)/scripts/mkits.sh \ -D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \ - -A $(ARCH) -v $(LINUX_VERSION) + -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \ + -A $(LINUX_KARCH) -v $(LINUX_VERSION) PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb endef +ifdef CONFIG_TARGET_IMAGES_GZIP + define Image/Gzip + rm -f $(1).gz + gzip -9n $(1) + endef +endif + # $(1) source dts file # $(2) target dtb file # $(3) extra CPP flags @@ -155,6 +160,7 @@ define Image/BuildDTB $(TARGET_CROSS)cpp -nostdinc -x assembler-with-cpp \ -I$(DTS_DIR) \ -I$(DTS_DIR)/include \ + -I$(LINUX_DIR)/include/ \ -undef -D__DTS__ $(3) \ -o $(2).tmp $(1) $(LINUX_DIR)/scripts/dtc/dtc -O dtb \ @@ -197,21 +203,22 @@ define Image/mkfs/squashfs $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \ -nopad -noappend -root-owned \ -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \ - -processors $(if $(CONFIG_PKG_BUILD_JOBS),$(CONFIG_PKG_BUILD_JOBS),1) \ + -processors 1 \ $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH)) endef # $(1): board name # $(2): rootfs type # $(3): kernel image +# $(4): compat string ifneq ($(CONFIG_NAND_SUPPORT),) define Image/Build/SysupgradeNAND - mkdir -p "$(KDIR_TMP)/sysupgrade-$(1)/" - echo "BOARD=$(1)" > "$(KDIR_TMP)/sysupgrade-$(1)/CONTROL" - [ -z "$(2)" ] || $(CP) "$(KDIR)/root.$(2)" "$(KDIR_TMP)/sysupgrade-$(1)/root" - [ -z "$(3)" ] || $(CP) "$(3)" "$(KDIR_TMP)/sysupgrade-$(1)/kernel" + mkdir -p "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/" + echo "BOARD=$(if $(4),$(4),$(1))" > "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/CONTROL" + [ -z "$(2)" ] || $(CP) "$(KDIR)/root.$(2)" "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/root" + [ -z "$(3)" ] || $(CP) "$(3)" "$(KDIR_TMP)/sysupgrade-$(if $(4),$(4),$(1))/kernel" (cd "$(KDIR_TMP)"; $(TAR) cvf \ - "$(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-sysupgrade.tar" sysupgrade-$(1) \ + "$(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-sysupgrade.tar" sysupgrade-$(if $(4),$(4),$(1)) \ $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \ ) endef @@ -233,9 +240,9 @@ define Image/mkfs/ubifs $(STAGING_DIR_HOST)/bin/mkfs.ubifs \ $(UBIFS_OPTS) $(call param_unmangle,$(call param_get,fs,$(1))) \ $(if $(CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP),--space-fixup) \ - $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--force-compr=none) \ - $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--force-compr=lzo) \ - $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--force-compr=zlib) \ + $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--compr=none) \ + $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--compr=lzo) \ + $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--compr=zlib) \ $(if $(shell echo $(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)),--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)) \ --squash-uids \ -o $@ -d $(call mkfs_target_dir,$(1)) @@ -253,10 +260,7 @@ define Image/mkfs/ext4 endef define Image/Manifest - $(STAGING_DIR_HOST)/bin/opkg \ - --offline-root $(TARGET_DIR) \ - --add-arch all:100 \ - --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200 list-installed > \ + $(call opkg,$(TARGET_DIR_ORIG)) list-installed > \ $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest endef @@ -270,7 +274,7 @@ endif ifdef CONFIG_TARGET_ROOTFS_CPIOGZ define Image/Build/cpiogz - ( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9n >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz ) + ( cd $(TARGET_DIR); find . | cpio -o -H newc -R root:root | gzip -9n >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz ) endef endif @@ -295,9 +299,9 @@ target-dir-%: FORCE $(opkg_target) update && \ $(opkg_target) install \ $(call opkg_package_files,$(mkfs_packages_add))) - $(call prepare_rootfs,$(mkfs_cur_target_dir)) - -mv $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir)/etc/opkg - rm -f $(mkfs_cur_target_dir).conf + -$(CP) -T $(mkfs_cur_target_dir).opkg/ $(mkfs_cur_target_dir)/etc/opkg/ + rm -rf $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir).conf + $(call prepare_rootfs,$(mkfs_cur_target_dir),$(TOPDIR)/files) $(KDIR)/root.%: kernel_prepare $(call Image/mkfs/$(word 1,$(target_params)),$(target_params)) @@ -344,6 +348,7 @@ define Device/Init FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS) DEVICE_DTS := + DEVICE_DTS_CONFIG := DEVICE_DTS_DIR := BOARD_NAME := @@ -356,8 +361,8 @@ endef DEFAULT_DEVICE_VARS := \ DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \ - DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \ - UBOOTENV_IN_UBI KERNEL_IN_UBI \ + KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME \ + CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI \ BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \ UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \ SUPPORTED_DEVICES IMAGE_METADATA @@ -388,6 +393,7 @@ endef define Device/Check/Common _PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile)))) + DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES)) ifdef TARGET_PER_DEVICE_ROOTFS $$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1)))) ROOTFS_ID/$(1) := $$(if $$(_PROFILE_SET),$$(call mkfs_packages_id,$$(_PACKAGES))) @@ -413,7 +419,7 @@ define Device/Build/initramfs $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE) cp $$^ $$@ - $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) + $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) image_prepare @rm -f $$@ $$(call concat_cmd,$$(KERNEL_INITRAMFS)) endef @@ -427,7 +433,27 @@ define Device/Build/compile endef +ifndef IB +define Device/Build/dtb + ifndef BUILD_DTS_$(1) + BUILD_DTS_$(1) := 1 + $(KDIR)/image-$(1).dtb: FORCE + $(call Image/BuildDTB,$(strip $(2))/$(strip $(3)).dts,$$@) + + image_prepare: $(KDIR)/image-$(1).dtb + endif + +endef +endif + define Device/Build/kernel + $$(eval $$(foreach dts,$$(DEVICE_DTS), \ + $$(call Device/Build/dtb,$$(notdir $$(dts)), \ + $$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \ + $$(dts) \ + ) \ + )) + $(KDIR)/$$(KERNEL_NAME):: image_prepare $$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE)) $(call Device/Export,$$(KDIR_KERNEL_IMAGE),$(1)) @@ -437,7 +463,7 @@ define Device/Build/kernel ifdef CONFIG_IB install: $$(KDIR_KERNEL_IMAGE) endif - $$(KDIR_KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) + $$(KDIR_KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) image_prepare @rm -f $$@ $$(call concat_cmd,$$(KERNEL)) $$(if $$(KERNEL_SIZE),$$(call Build/check-size,$$(KERNEL_SIZE))) @@ -445,7 +471,8 @@ define Device/Build/kernel endef define Device/Build/image - $$(_TARGET): $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)) + GZ_SUFFIX := $(if $(filter %dtb %gz,$(2)),,$(if $(and $(findstring ext4,$(1)),$(CONFIG_TARGET_IMAGES_GZIP)),.gz)) + $$(_TARGET): $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX) $(eval $(call Device/Export,$(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)),$(1))) ROOTFS/$(1)/$(3) := \ $(KDIR)/root.$(1)$$(strip \ @@ -462,6 +489,10 @@ define Device/Build/image $$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2)))) .IGNORE: $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)) + + $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)).gz: $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)) + gzip -c -9n $$^ > $$@ + $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)): $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)) cp $$^ $$@