next round of build system cleanup - convert package/ to new structure
[openwrt/openwrt.git] / Makefile
index be53622cc18069c9882c8a0515af9f5d3d650258..fbed1297a1eb6c8fd915a0afc3579504af563bc6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,23 +6,26 @@
 # See /LICENSE for more information.
 #
 
-all: world
-
 TOPDIR:=${CURDIR}
 LC_ALL:=C
 LANG:=C
 IS_TTY:=${shell tty -s && echo 1 || echo 0}
 export TOPDIR LC_ALL LANG IS_TTY
 
+world:
+
+include $(TOPDIR)/include/debug.mk
+include $(TOPDIR)/include/host.mk
+
 ifneq ($(OPENWRT_BUILD),1)
-  export OPENWRT_BUILD:=1
+  override OPENWRT_BUILD=1
+  export OPENWRT_BUILD
   include $(TOPDIR)/include/toplevel.mk
 else
-  include $(TOPDIR)/include/host.mk
-
   include rules.mk
   include $(INCLUDE_DIR)/depends.mk
   include $(INCLUDE_DIR)/subdir.mk
+  include package/Makefile
   include tools/Makefile
   include toolchain/Makefile
 
@@ -35,14 +38,32 @@ dirclean: clean
 distclean: dirclean config-clean symlinkclean docs/clean
        rm -rf dl
 
-package/% target/%: FORCE
+target/%: FORCE
        $(MAKE) -C $(patsubst %/$*,%,$@) $*
 
-world: .config $(tools/stamp) $(toolchain/stamp) FORCE
+# check prerequisites before starting to build
+prereq: tmp/.prereq-target $(package/stamp-prereq) ;
+
+world: .config $(tools/stamp-install) $(toolchain/stamp-install) FORCE
        $(MAKE) target/compile
        $(MAKE) package/compile
        $(MAKE) package/install
        $(MAKE) target/install
        $(MAKE) package/index
 
+package/symlinks:
+       $(SCRIPT_DIR)/feeds.sh $(CONFIG_SOURCE_FEEDS) $(CONFIG_SOURCE_FEEDS_REV)        
+
+# FIXME: remove after converting target/ to new structure
+tmp/.prereq-target: tmp/.targetinfo .config
+tmp/.prereq-target: include/prereq.mk 
+       mkdir -p tmp
+       rm -f tmp/.host.mk
+       @+$(NO_TRACE_MAKE) -s -C target prereq 2>/dev/null || { \
+               echo "Prerequisite check failed. Use FORCE=1 to override."; \
+               false; \
+       }
+       touch $@
+.SILENT: tmp/.prereq-target
+
 endif