next round of build system cleanup - convert package/ to new structure
[openwrt.org/openwrt.git] / Makefile
blob:a/Makefile -> blob:b/Makefile
--- 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,15 +38,33 @@
 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
 

comments