export $(call shvar,$(1))
endef
-# Default targets for subdirectory calls
-# Parameters:
-# 1: dependencies for the prepare step
-define default_subtargets
- %-download: FORCE
- $$(MAKE) -C $$(patsubst %-download,%,$$@) download
-
- %-prepare: $(1) FORCE
- $$(MAKE) -C $$(patsubst %-prepare,%,$$@) prepare
-
- %-compile: %-prepare
- $$(MAKE) -C $$(patsubst %-compile,%,$$@) compile
-
- %-install:
- $$(MAKE) -C $$(patsubst %-install,%,$$@) install
-
- %-clean: FORCE
- @$$(MAKE) -C $$(patsubst %-clean,%,$$@) clean
-endef
-
-
all:
FORCE: ;
.PHONY: FORCE
imagebuilder_install: image_install
$(MAKE) -C imagebuilder install
-$(eval $(call default_subtargets,))
+%-prereq %-prepare %-download %-clean %-compile %-install: FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
endif
TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y))
+TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y))
TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y))
TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y))
TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y))
$(TOOLCHAIN_BUILD_DIR):
@mkdir -p $@
-$(eval $(call default_subtargets,$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR)))
+%-prereq %-download %-clean: FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
+%-prepare: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR)
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
+
+%-compile: %-prepare FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
+
+%-install: %-compile FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
$(TOOL_BUILD_DIR):
@mkdir -p $@
-$(TARGETS_COMPILE) $(TARGETS_INSTALL): $(STAGING_DIR)/include-host $(TOOL_BUILD_DIR)
+%-prereq %-download %-clean: FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
-$(eval $(call default_subtargets,))
+%-prepare: $(STAGING_DIR)/include-host $(TOOL_BUILD_DIR) FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
+
+%-compile: %-prepare FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
+
+%-install: %-compile FORCE
+ $(MAKE) -C $* $(patsubst $*-%,%,$@)
ifeq ($(MAKECMDGOALS),install-targets)
MAKEFLAGS:=$(MAKEFLAGS) -j$(CONFIG_JLEVEL)