-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
-# Default target skeleton stuff, may be overridden
-TARGET_SKEL_DIR=default/target_skeleton
+$(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)
-all: install
+$(curdir)/imagebuilder/prepare:=$(curdir)/linux/install
-$(TARGET_DIR):
- mkdir -p $(TARGET_DIR)
- if [ -f "$(TARGET_SKELETON)" ] ; then \
- zcat $(TARGET_SKELETON) | tar -C $(BUILD_DIR) -xf -; \
- fi;
- if [ -d "$(TARGET_SKEL_DIR)" ] ; then \
- cp -a $(TARGET_SKEL_DIR)/* $(TARGET_DIR)/; \
- fi;
- mkdir -p $(TARGET_DIR)/jffs
- mkdir -p $(TARGET_DIR)/dev
- mkdir -p $(TARGET_DIR)/proc
- mkdir -p $(TARGET_DIR)/tmp
- mkdir -p $(TARGET_DIR)/lib
- mkdir -p $(TARGET_DIR)/usr/lib
- mkdir -p $(TARGET_DIR)/usr/bin
- ln -sf /tmp/resolv.conf $(TARGET_DIR)/etc/resolv.conf
- rm -rf $(TARGET_DIR)/var
- ln -sf /tmp $(TARGET_DIR)/var
- -find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
- -find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
-
-$(BIN_DIR):
- mkdir -p $(BIN_DIR)
-
-$(TARGET_DIR)/etc/sysconf:
- mkdir -p $(TARGET_DIR)/etc
- -grep \^BR2_SYSCONF $(TOPDIR)/.config > $(TARGET_DIR)/etc/sysconf
-
-linux-compile: utils-install lzma-install
-linux-install: $(TARGET_DIR)/etc/sysconf $(BIN_DIR)
-
-prepare: $(TARGET_DIR)
-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:
- $(MAKE) -C $(patsubst %-clean,%,$@) clean
-%-prepare:
- $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
-%-compile: %-prepare
- $(MAKE) -C $(patsubst %-compile,%,$@) compile
-%-rebuild:
- $(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
-%-install: %-compile
- $(MAKE) -C $(patsubst %-install,%,$@) install
+$(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)))