From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas De Schampheleire Date: Sun, 22 Jun 2014 15:45:44 +0200 Subject: [Buildroot] [PATCH 5 of 5 RFC] busybox: update-config: preserve freshly configured settings In-Reply-To: References: Message-ID: <7e80ee0110a2066c2afe.1403444744@localhost> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net In the sequence: make busybox-menuconfig make busybox-update-config the freshly configured settings from the menuconfig are lost during the update-config step. This is because update-config depends on the configure step, which starts by copying the config file to the build directory. Instead, stop depending on the configure step from update-config, and explicitly call the needed commands before actually copying the config file. This has the added bonus that 'busybox-update-config' no longer needs the toolchain to be available, which makes: make clean busybox-menuconfig busybox-update-config much faster and user-friendly. This is a corrolary of bug #7154 https://bugs.busybox.net/show_bug.cgi?id=7154 Signed-off-by: Thomas De Schampheleire --- package/busybox/busybox.mk | 27 ++++++++++++++++++--------- 1 files changed, 18 insertions(+), 9 deletions(-) diff -r 5dc5438c0108 -r 7e80ee0110a2 package/busybox/busybox.mk --- a/package/busybox/busybox.mk Sun Jun 22 15:33:49 2014 +0200 +++ b/package/busybox/busybox.mk Sun Jun 22 10:34:06 2014 +0200 @@ -189,14 +189,7 @@ endef endif -# Enable "noclobber" in install.sh, to prevent BusyBox from overwriting any -# full-blown versions of apps installed by other packages with sym/hard links. -define BUSYBOX_NOCLOBBER_INSTALL - $(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh -endef - -define BUSYBOX_CONFIGURE_CMDS - $(BUSYBOX_COPY_CONFIG) +define BUSYBOX_SETUP_CONFIG $(BUSYBOX_SET_MMU) $(BUSYBOX_SET_LARGEFILE) $(BUSYBOX_SET_IPV6) @@ -208,6 +201,17 @@ $(BUSYBOX_INTERNAL_SHADOW_PASSWORDS) $(BUSYBOX_SET_INIT) $(BUSYBOX_SET_WATCHDOG) +endef + +# Enable "noclobber" in install.sh, to prevent BusyBox from overwritting any +# full-blown versions of apps installed by other packages with sym/hard links. +define BUSYBOX_NOCLOBBER_INSTALL + $(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh +endef + +define BUSYBOX_CONFIGURE_CMDS + $(BUSYBOX_COPY_CONFIG) + $(BUSYBOX_SETUP_CONFIG) @yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \ -C $(@D) oldconfig $(BUSYBOX_NOCLOBBER_INSTALL) @@ -235,8 +239,13 @@ $(BUSYBOX_COPY_CONFIG) $(BUSYBOX_MAKE_ENV) $(MAKE) $(BUSYBOX_MAKE_OPTS) -C $(BUSYBOX_DIR) \ $(subst busybox-,,$@) + rm -f $(BUSYBOX_DIR)/.stamp_config_file_fixed rm -f $(BUSYBOX_DIR)/.stamp_built rm -f $(BUSYBOX_DIR)/.stamp_target_installed -busybox-update-config: busybox-configure +$(BUSYBOX_DIR)/.stamp_config_file_fixed: + $(BUSYBOX_SETUP_CONFIG) + touch $@ + +busybox-update-config: $(BUSYBOX_DIR)/.stamp_config_file_fixed cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)