summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-03-23 19:13:08 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-03-23 19:13:08 +0000
commitc3241962560c5e114f3bbc3e7f1a52917730993e (patch)
tree51d334bb81e3af89f8afaffeae6940043cb256bd
parent78a4e88e7631e101b3917c58d9de741768598e7a (diff)
make busybox autorebuild on relevant config changes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6651 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/package.mk23
-rw-r--r--include/shell.sh4
-rw-r--r--package/busybox/Makefile5
3 files changed, 22 insertions, 10 deletions
diff --git a/include/package.mk b/include/package.mk
index 44fe33ae1f..c7b2a43d2e 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -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
diff --git a/include/shell.sh b/include/shell.sh
index 1e60692b97..db41003262 100644
--- a/include/shell.sh
+++ b/include/shell.sh
@@ -28,3 +28,7 @@ trapret() {(
}
}
)}
+
+md5s() {
+ which md5sum 2>&- >&- && md5sum "$@" | awk '{print $1}' || md5 "$@"
+}
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 3049601524..90e3af060a 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -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)" \