large improvement for parallel builds. works without V=99 now and without warnings...
[openwrt-10.03/.git] / target / Makefile
index e6ebbaae25e03a8c50f44ad2d6a4f0e2ef1c1055..4c746e2f008a5a26d184f7d5ac8cb2e924f2a7ed 100644 (file)
@@ -1,37 +1,22 @@
-include $(TOPDIR)/rules.mk
+# 
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+curdir:=target
 
-all: install
+$(curdir)/builddirs-parallel:=linux
+$(curdir)/builddirs:=linux sdk imagebuilder
+$(curdir)/builddirs-default:=linux
+$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder)
 
-$(BIN_DIR):
-       mkdir -p $(BIN_DIR)
+$(curdir)/imagebuilder/prepare:=$(curdir)/linux/install
 
-linux-compile: utils-install lzma-install
-linux-install: $(BIN_DIR)
+$(eval $(call stampfile,$(curdir),target,prereq,.config))
+$(eval $(call stampfile,$(curdir),target,compile,$(TMP_DIR)/.build))
+$(eval $(call stampfile,$(curdir),target,install,$(TMP_DIR)/.build))
 
-prepare: linux-prepare
-compile: linux-compile
-install: image_clean linux-install
-clean: linux-clean utils-clean lzma-clean image_clean
-
-image_clean:
-       rm -f $(BIN_DIR)/openwrt-*
-
-%-clean:
-       @$(TRACE) target/$(patsubst %-clean,%,$@)/clean
-       $(MAKE) -C $(patsubst %-clean,%,$@) clean
-%-prepare:
-       @$(TRACE) target/$(patsubst %-prepare,%,$@)/prepare
-       $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
-%-compile: %-prepare
-       @$(TRACE) target/$(patsubst %-compile,%,$@)/compile
-       $(MAKE) -C $(patsubst %-compile,%,$@) compile
-%-rebuild: 
-       @$(TRACE) target/$(patsubst %-rebuild,%,$@)/rebuild
-       $(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
-%-install: %-compile
-       @$(TRACE) target/$(patsubst %-install,%,$@)/install
-       $(MAKE) -C $(patsubst %-install,%,$@) install
-linux-imagebuilder:
-       @$(TRACE) target/linux/imagebuilder
-       $(MAKE) -C linux imagebuilder
+$($(curdir)/stamp-install): $($(curdir)/stamp-compile) 
 
+$(eval $(call subdir,$(curdir)))