image.mk: simplify device profile check, prepare for supporting selecting multiple...
[librecmc/librecmc.git] / include / image.mk
index b07aa90b456cd1087e9738e2998c2b1d10ce77a7..d0bf8fc3eacf0a3660e13a1b3f5597387b98ba15 100644 (file)
@@ -471,9 +471,14 @@ define Device/Export
   $(1) : FILESYSTEM:=$(2)
 endef
 
+DEVICE_CHECK_PROFILE = $(CONFIG_TARGET_$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_$(1))
+
 define Device/Check
-  _TARGET = $$(if $$(and $(if $(SUBTARGET),,1)$$(filter $(SUBTARGET),$$(SUBTARGETS)),$$(filter $(PROFILE),$$(PROFILES) DEVICE_$(1))),install,install-disabled)
-  _COMPILE_TARGET = $$(if $(if $(IB),,$(CONFIG_IB)$$(filter $(PROFILE),$$(PROFILES) DEVICE_$(1))),compile,compile-disabled)
+  _PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
+  _TARGET := $$(if $$(_PROFILE_SET),install,install-disabled)
+  ifndef IB
+    _COMPILE_TARGET := $$(if $(CONFIG_IB)$$(_PROFILE_SET),compile,compile-disabled)
+  endif
 endef
 
 ifndef IB
@@ -560,17 +565,15 @@ $(DEVICE_DESCRIPTION)
 
 endef
 
-DEVICE_PROFILE_CHECK=$(and $(DEVICE_TITLE),$(if $(SUBTARGET),,1)$(filter $(SUBTARGET),$(SUBTARGETS)))
-
 define Device/Dump
-$$(eval $$(if $$(DEVICE_PROFILE_CHECK),$$(info $$(call Device/DumpInfo,$(1)))))
+$$(eval $$(if $$(DEVICE_TITLE),$$(info $$(call Device/DumpInfo,$(1)))))
 endef
 
 define Device
   $(call Device/Init,$(1))
   $(call Device/Default,$(1))
-  $(call Device/Check,$(1))
   $(call Device/$(1),$(1))
+  $(call Device/Check,$(1))
   $(call Device/$(if $(DUMP),Dump,Build),$(1))
 
 endef