run metadata scanning only once when multiple targets are specified on the command...
[openwrt.git] / rules.mk
index 42e9978..2dc8bcc 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -83,10 +83,12 @@ TARGET_CONFIGURE_OPTS:= \
   CXX=$(TARGET_CROSS)g++ \
   RANLIB=$(TARGET_CROSS)ranlib \
   STRIP=$(TARGET_CROSS)strip \
-  OBJCOPY=$(TARGET_CROSS)objcopy
+  OBJCOPY=$(TARGET_CROSS)objcopy \
+       OBJDUMP=$(TARGET_CROSS)objdump
 
 # strip an entire directory
 RSTRIP:= \
+  NM="$(TARGET_CROSS)nm" \
   STRIP="$(STRIP)" \
   STRIP_KMOD="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" \
   $(SCRIPT_DIR)/rstrip.sh
@@ -129,6 +131,26 @@ $(call shvar,$(1))=$$(call $(1))
 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: %-compile
+       $$(MAKE) -C $$(patsubst %-install,%,$$@) install
+
+  %-clean: FORCE
+       @$$(MAKE) -C $$(patsubst %-clean,%,$$@) clean
+endef
+
 
 all:
 FORCE: ;