run metadata scanning only once when multiple targets are specified on the command...
[openwrt/svn-archive/archive.git] / rules.mk
index b63fcf31c8f5f7a6934473e64992f4188263599c..2dc8bcc7ccdff46f6374cd7131e1a40cac7ef60b 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -83,12 +83,14 @@ 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 -w -K '__mod*'" \
+  STRIP_KMOD="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" \
   $(SCRIPT_DIR)/rstrip.sh
 
 # where to build (and put) .ipk packages
@@ -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: ;