diff --git a/Makefile b/Makefile
index 4bdc4651e82682a8846c144e0356fbe0b40ad306..05a2c2b21b066672762e188d2bced5ac8579945b 100644
--- a/Makefile
+++ b/Makefile
@@ -72,7 +72,7 @@ prereq: $(target/stamp-prereq) tmp/.prereq_packages
 
 prepare: .config $(tools/stamp-install) $(toolchain/stamp-install)
 world: prepare $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-compile) $(package/stamp-install) $(package/stamp-rootfs-prepare) $(target/stamp-install) FORCE
-	$(_SINGLE)$(SUBMAKE) package/index
+	$(_SINGLE)$(SUBMAKE) -r package/index
 
 # update all feeds, re-create index files, install symlinks
 package/symlinks:
diff --git a/include/toplevel.mk b/include/toplevel.mk
index eaaf6d37d1c6785ec86a7e3e3b68f06146ea8768..7f5308fc260d79a2d8cfe3cfbf29a1b06a8675e5 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -40,8 +40,8 @@ prepare-mk: FORCE ;
 
 prepare-tmpinfo: FORCE
 	mkdir -p tmp/info
-	$(_SINGLE)$(NO_TRACE_MAKE) -j1 -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk" SCAN_DEPTH=5 SCAN_EXTRA=""
-	$(_SINGLE)$(NO_TRACE_MAKE) -j1 -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
+	$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk" SCAN_DEPTH=5 SCAN_EXTRA=""
+	$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
 	for type in package target; do \
 		f=tmp/.$${type}info; t=tmp/.config-$${type}.in; \
 		[ "$$t" -nt "$$f" ] || ./scripts/metadata.pl $${type}_config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \
@@ -91,7 +91,7 @@ kernel_menuconfig: .config FORCE
 tmp/.prereq-build: include/prereq-build.mk
 	mkdir -p tmp
 	rm -f tmp/.host.mk
-	@$(_SINGLE)$(NO_TRACE_MAKE) -j1 -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
+	@$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f $(TOPDIR)/include/prereq-build.mk prereq 2>/dev/null || { \
 		echo "Prerequisite check failed. Use FORCE=1 to override."; \
 		false; \
 	}
@@ -104,14 +104,14 @@ download: .config FORCE
 	@+$(SUBMAKE) target/download
 
 clean dirclean: .config
-	@+$(SUBMAKE) $@ 
+	@+$(SUBMAKE) -r $@ 
 
 prereq:: .config
-	@+$(MAKE) -s tmp/.prereq-build $(PREP_MK)
-	@+$(NO_TRACE_MAKE) -s $@
+	@+$(MAKE) -r -s tmp/.prereq-build $(PREP_MK)
+	@+$(NO_TRACE_MAKE) -r -s $@
 
 %::
-	@+$(PREP_MK) $(NO_TRACE_MAKE) -s prereq
+	@+$(PREP_MK) $(NO_TRACE_MAKE) -r -s prereq
 	@+$(SUBMAKE) -r $@
 
 help: