make busybox autorebuild on relevant config changes
authorFelix Fietkau <nbd@openwrt.org>
Fri, 23 Mar 2007 19:13:08 +0000 (19:13 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 23 Mar 2007 19:13:08 +0000 (19:13 +0000)
SVN-Revision: 6651

include/package.mk
include/shell.sh
package/busybox/Makefile

index 44fe33a..c7b2a43 100644 (file)
@@ -17,6 +17,9 @@ include $(INCLUDE_DIR)/package-defaults.mk
 include $(INCLUDE_DIR)/package-dumpinfo.mk
 include $(INCLUDE_DIR)/package-ipkg.mk
 
+STAMP_PREPARED:=$(PKG_BUILD_DIR)/.prepared
+STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured
+STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
 export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME)
 
 define Build/DefaultTargets
@@ -27,46 +30,46 @@ define Build/DefaultTargets
        mkdir -p $(DL_DIR)
        $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL)
 
-    $(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE)
+    $(STAMP_PREPARED): $(DL_DIR)/$(PKG_SOURCE)
   endif
 
   ifeq ($(DUMP),)
     ifeq ($(CONFIG_AUTOREBUILD),y)
       ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) . $(PKG_FILE_DEPEND)),$(PKG_BUILD_DIR))
         $$(info Forcing package rebuild)
-        $(PKG_BUILD_DIR)/.prepared: clean
+        $(STAMP_PREPARED): clean
       endif
     endif
   endif
 
-  $(PKG_BUILD_DIR)/.prepared:
+  $(STAMP_PREPARED):
        @-rm -rf $(PKG_BUILD_DIR)
        @mkdir -p $(PKG_BUILD_DIR)
        $(Build/Prepare)
        touch $$@
 
-  $(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared
+  $(STAMP_CONFIGURED): $(STAMP_PREPARED)
        $(Build/Configure)
        touch $$@
 
-  $(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured
+  $(STAMP_BUILT): $(STAMP_CONFIGURED)
        $(Build/Compile)
        touch $$@
 
   ifdef Build/InstallDev
     ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg -x ipkg-install $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed $(PKG_BUILD_DIR)),$(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed)
-      $(PKG_BUILD_DIR)/.built: package-rebuild
+      $(STAMP_BUILT): package-rebuild
     endif
 
     compile: $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed
-    $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed: $(PKG_BUILD_DIR)/.built
+    $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed: $(STAMP_BUILT)
        mkdir -p $(STAGING_DIR)/stampfiles
        $(Build/InstallDev)
        touch $$@
   endif
 
   package-rebuild: FORCE
-       @-rm -f $(PKG_BUILD_DIR)/.built
+       @-rm -f $(STAMP_BUILT)
 
   define Build/DefaultTargets
   endef
@@ -115,8 +118,8 @@ $(PACKAGE_DIR):
                
 dumpinfo:
 download:
-prepare: $(PKG_BUILD_DIR)/.prepared
-configure: $(PKG_BUILD_DIR)/.configured
+prepare: $(STAMP_PREPARED)
+configure: $(STAMP_CONFIGURED)
 compile:
 install:
 clean: FORCE
index 1e60692..db41003 100644 (file)
@@ -28,3 +28,7 @@ trapret() {(
                }
        }
 )}
+
+md5s() {
+       which md5sum 2>&- >&- && md5sum "$@" | awk '{print $1}' || md5 "$@"
+}
index 3049601..90e3af0 100644 (file)
@@ -19,6 +19,10 @@ PKG_MD5SUM:=5728403bce309cdabcffa414e2e64052
 
 include $(INCLUDE_DIR)/package.mk
 
+ifeq ($(DUMP),)
+  STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep '^CONFIG_BUSYBOX_' $(TOPDIR)/.config | md5s)
+endif
+
 init-y :=
 init-$(CONFIG_BUSYBOX_CONFIG_HTTPD) += httpd
 init-$(CONFIG_BUSYBOX_CONFIG_CROND) += cron
@@ -46,6 +50,7 @@ define Package/busybox/config
 endef
 
 define Build/Configure
+       rm -f $(PKG_BUILD_DIR)/.configured*
        $(SCRIPT_DIR)/gen_busybox_config.pl $(TOPDIR)/.config > $(PKG_BUILD_DIR)/.config
        yes '' | $(MAKE) -C $(PKG_BUILD_DIR) \
                CC="$(TARGET_CC)" \