From 000393712e9f30897feb5d592cc6901777494ab4 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 23 Mar 2007 19:13:08 +0000 Subject: [PATCH] make busybox autorebuild on relevant config changes SVN-Revision: 6651 --- include/package.mk | 23 +++++++++++++---------- include/shell.sh | 4 ++++ package/busybox/Makefile | 5 +++++ 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)" \