the default_subtargets template was a bad idea, since different makefiles require different types of dependencies for subtargets. nuke it...
the default_subtargets template was a bad idea, since different makefiles require different types of dependencies for subtargets. nuke it...

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7003 3c298f89-4303-0410-b956-a3cf2f4a3e73

file:a/rules.mk -> file:b/rules.mk
--- a/rules.mk
+++ b/rules.mk
@@ -131,27 +131,6 @@
 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

--- a/target/Makefile
+++ b/target/Makefile
@@ -51,5 +51,6 @@
 imagebuilder_install: image_install
 	$(MAKE) -C imagebuilder install
 
-$(eval $(call default_subtargets,))
+%-prereq %-prepare %-download %-clean %-compile %-install: FORCE
+	$(MAKE) -C $* $(patsubst $*-%,%,$@)
 

--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -15,6 +15,7 @@
 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))
@@ -49,6 +50,15 @@
 $(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 $*-%,%,$@)
+

--- a/tools/Makefile
+++ b/tools/Makefile
@@ -40,9 +40,17 @@
 $(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)

comments