diff --git a/openwrt/Makefile b/openwrt/Makefile
index ec1e3677ab8d23796a4ad62b266fc42362a832aa..c323a9c24c4e153bca3f4229ac14aeb52b2b9301 100644
--- a/openwrt/Makefile
+++ b/openwrt/Makefile
@@ -38,21 +38,19 @@ endif
 endif
 export OPENWRTVERSION
 
-.pkginfo:
+.pkginfo: FORCE
+ifeq ($(shell ./scripts/timestamp.pl -p .pkginfo package),package)
 	@echo Collecting package info...
 	@-for makefile in package/*/Makefile; do \
 		echo Source-Makefile: $$makefile; \
 		$(MAKE) DUMP=1 -f $$makefile 2>&- || true; \
 	done > $@
-	
-ifeq ($(shell ./scripts/timestamp.pl -p .pkginfo package),package)
-.pkginfo: pkginfo-clean
 endif
 
 .config.in: .pkginfo
 	./scripts/gen_menuconfig.pl < $< > $@ || rm -f $@
 
-pkginfo-clean:
+pkginfo-clean: FORCE
 	-rm -f .pkginfo .config.in
 
 scripts/config/mconf: .config.in
@@ -70,6 +68,5 @@ config: scripts/config/conf
 config-clean:
 	$(MAKE) -C scripts/config clean
 
-.PHONY: pkginfo-clean
-
-
+.PHONY: FORCE
+FORCE:
diff --git a/openwrt/package/rules.mk b/openwrt/package/rules.mk
index 540b14f63a2b7add132bc97a630ca20cda4534dc..3d2f957d3ba5f33bbf300a9bbe6c71405fff9c93 100644
--- a/openwrt/package/rules.mk
+++ b/openwrt/package/rules.mk
@@ -240,20 +240,21 @@ else
 $(PACKAGE_DIR):
 	mkdir -p $@
 
-source: $(DL_DIR)/$(PKG_SOURCE)
-prepare: $(PKG_BUILD_DIR)/.prepared
-configure: $(PKG_BUILD_DIR)/.configured
+source: FORCE $(DL_DIR)/$(PKG_SOURCE)
+prepare: FORCE $(PKG_BUILD_DIR)/.prepared
+configure: FORCE $(PKG_BUILD_DIR)/.configured
 
-compile-targets:
-compile: compile-targets
+compile-targets: FORCE
+compile: FORCE compile-targets
 
-install-targets:
-install: install-targets
+install-targets: FORCE
+install: FORCE install-targets
 
-clean-targets:
-clean: 
+clean-targets: FORCE
+clean: FORCE
 	@$(MAKE) clean-targets
 	rm -rf $(PKG_BUILD_DIR)
 endif
 
-.PHONY: all source prepare compile install clean dumpinfo compile-targets install-targets clean-targets
+.PHONY: FORCE
+FORCE: