X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/93e50b06ca295bc34326f6221b48ff5e94ccaa12..04e0d26c83e70ef0b7fdbe0919c32113a1785715:/Makefile?ds=sidebyside

diff --git a/Makefile b/Makefile
index 9b9d1c955..faeecaa48 100644
--- a/Makefile
+++ b/Makefile
@@ -38,14 +38,14 @@ endif
 endif
 export OPENWRTVERSION
 
-all:
+all: world
 
 .pkginfo: FORCE
-ifeq ($(shell ./scripts/timestamp.pl -p .pkginfo package),package)
+ifneq ($(shell ./scripts/timestamp.pl -p .pkginfo package Makefile),.pkginfo)
 	@echo Collecting package info...
-	@-for makefile in package/*/Makefile; do \
-		echo Source-Makefile: $$makefile; \
-		$(MAKE) --no-print-dir DUMP=1 -f $$makefile 2>&- || true; \
+	@-for dir in package/*/; do \
+		echo Source-Makefile: $${dir}Makefile; \
+		$(MAKE) --no-print-dir DUMP=1 -C $$dir 2>&- || true; \
 	done > $@
 endif
 
@@ -55,20 +55,61 @@ endif
 pkginfo-clean: FORCE
 	-rm -f .pkginfo .config.in
 
-scripts/config/mconf: .config.in
+./scripts/config/mconf: .config.in
 	$(MAKE) -C scripts/config all
 
-scripts/config/conf: .config.in
+./scripts/config/conf: .config.in
 	$(MAKE) -C scripts/config conf
 
-menuconfig: scripts/config/mconf
+config: ./scripts/config/conf FORCE
 	$< Config.in
 
-config: scripts/config/conf
+defconfig: ./scripts/config/conf FORCE
+	touch .config
+	$< -D .config Config.in
+
+oldconfig: ./scripts/config/conf FORCE
+	$< -o Config.in
+
+menuconfig: ./scripts/config/mconf FORCE
 	$< Config.in
 
-config-clean:
+config-clean: FORCE
 	$(MAKE) -C scripts/config clean
 
+package/%: .pkginfo FORCE
+	$(MAKE) -C package $(patsubst package/%,%,$@)
+
+target/%: .pkginfo FORCE
+	$(MAKE) -C target $(patsubst target/%,%,$@)
+
+toolchain/%: FORCE
+	$(MAKE) -C toolchain $(patsubst toolchain/%,%,$@)
+
+.config: ./scripts/config/conf FORCE
+	@[ -f .config ] || $(MAKE) menuconfig
+	$< -D .config Config.in >/dev/null 2>/dev/null
+
+download: .config FORCE
+	$(MAKE) toolchain/download
+	$(MAKE) package/download
+	$(MAKE) target/download
+
+world: .config FORCE
+	$(MAKE) toolchain/install
+	$(MAKE) target/compile
+	$(MAKE) package/compile
+	$(MAKE) package/install
+	$(MAKE) target/install
+
+clean: FORCE
+	rm -rf build_* bin
+
+dirclean: clean
+	rm -rf staging_dir_* toolchain_build_*
+
+distclean: dirclean config-clean
+	rm -rf dl .*config* .pkg*
+
 .PHONY: FORCE
 FORCE: