image.mk: replace some template abstraction with make pattern rules
[openwrt/openwrt.git] / include / image.mk
index 669ff0431335a3692decb930d4ab05e995c21ef6..bca5d1a7c37f0fcf51c99b3174bf90b036e6b584 100644 (file)
@@ -216,7 +216,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
 
     define Image/mkfs/ubifs
 
-        ifneq ($($(PROFILE)_UBIFS_OPTS)$(UBIFS_OPTS),)
+        $(if $($(PROFILE)_UBIFS_OPTS)$(UBIFS_OPTS),
                $(STAGING_DIR_HOST)/bin/mkfs.ubifs \
                        $(if $($(PROFILE)_UBIFS_OPTS), \
                                $(shell echo $($(PROFILE)_UBIFS_OPTS)), \
@@ -230,13 +230,13 @@ ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
                        --squash-uids \
                        -o $(KDIR)/root.ubifs \
                        -d $(TARGET_DIR)
-        endif
+       )
        $(call Image/Build,ubifs)
 
-        ifneq ($($(PROFILE)_UBI_OPTS)$(UBI_OPTS),)
+        $(if $($(PROFILE)_UBI_OPTS)$(UBI_OPTS),
                $(if $(wildcard ./ubinize.cfg),$(call Image/mkfs/ubifs/generate,))
                $(if $(wildcard ./ubinize-overlay.cfg),$(call Image/mkfs/ubifs/generate,-overlay))
-        endif
+       )
        $(if $(wildcard ./ubinize.cfg),$(call Image/Build,ubi))
     endef
 endif
@@ -283,16 +283,8 @@ define Image/Checksum
        )
 endef
 
-define BuildImage/mkfs
-  install-images: mkfs-$(1)
-  .PHONY: mkfs-$(1)
-  mkfs-$(1): kernel_prepare
-       $(Image/mkfs/$(1))
-       $(call Build/mkfs/default,$(1))
-       $(call Build/mkfs/$(1),$(1))
-  $(KDIR)/root.$(1): mkfs-$(1)
-
-endef
+$(KDIR)/root.%: kernel_prepare
+       $(Image/mkfs/$*)
 
 define Device/InitProfile
   PROFILES := $(PROFILE)
@@ -322,15 +314,32 @@ define Device/Init
   KERNEL_DEPENDS :=
   KERNEL_SIZE :=
 
+  UBOOTENV_IN_UBI :=
+  KERNEL_IN_UBI :=
+  BLOCKSIZE :=
+  PAGESIZE :=
+  SUBPAGESIZE :=
+  UBINIZE_OPTS := -E 5
+
+  DEVICE_DTS :=
+  DEVICE_DTS_DIR :=
+
   FILESYSTEMS := $(TARGET_FILESYSTEMS)
 endef
 
+DEFAULT_DEVICE_VARS := \
+  DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE \
+  DEVICE_DTS DEVICE_DTS_DIR \
+  UBOOTENV_IN_UBI KERNEL_IN_UBI \
+  BLOCKSIZE PAGESIZE SUBPAGESIZE \
+  UBINIZE_OPTS
+
 define Device/ExportVar
   $(1) : $(2):=$$($(2))
 
 endef
 define Device/Export
-  $(foreach var,$(DEVICE_VARS) DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE,$(call Device/ExportVar,$(1),$(var)))
+  $(foreach var,$(DEVICE_VARS) $(DEFAULT_DEVICE_VARS),$(call Device/ExportVar,$(1),$(var)))
   $(1) : FILESYSTEM:=$(2)
 endef
 
@@ -351,7 +360,7 @@ endef
 ifndef IB
 define Device/Build/initramfs
   $(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1))
-  $$(_TARGET): $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
+  $$(_TARGET): $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
 
   $(KDIR)/$$(KERNEL_INITRAMFS_NAME):: image_prepare
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
@@ -466,6 +475,7 @@ define LegacyDevice/Build
        $$(call Image/Prepare/Profile,$(1))
 
   legacy-image-$(1):
+       $$(call Image/BuildKernel/Profile,$(1))
        $(foreach fs,$(TARGET_FILESYSTEMS),
                $$(call Image/Build/Profile,$(1),$(fs))
        )
@@ -528,9 +538,8 @@ define BuildImage
 
   $(foreach device,$(TARGET_DEVICES),$(call Device,$(device)))
   $(foreach device,$(LEGACY_DEVICES),$(call LegacyDevice,$(device)))
-  $(foreach fs,$(TARGET_FILESYSTEMS) $(fs-subtypes-y),$(call BuildImage/mkfs,$(fs)))
 
-  install-images: kernel_prepare
+  install-images: kernel_prepare $(foreach fs,$(TARGET_FILESYSTEMS) $(fs-subtypes-y),$(KDIR)/root.$(fs))
        $(foreach fs,$(TARGET_FILESYSTEMS),
                $(call Image/Build,$(fs))
        )