-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:=linux sdk imagebuilder toolchain
+$(curdir)/builddirs-default:=linux
+$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain)
-$(BIN_DIR):
- mkdir -p $(BIN_DIR)
+$(curdir)/imagebuilder/compile:=$(curdir)/linux/install
-linux-compile: utils-install lzma-install
-linux-install: $(BIN_DIR)
+# prerequisites for the individual targets
+$(curdir)//install = $(1)/compile
-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-*
-
-linux/package/%:
- $(MAKE) -C $(TOPDIR)/target/linux $(patsubst linux/%,%,$@)
-
-%-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
+$(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))
+$($(curdir)/stamp-install): $($(curdir)/stamp-compile)
+$(eval $(call subdir,$(curdir)))