[Buildroot] [PATCH 5 of 5 RFC] busybox: update-config: preserve freshly configured settings
Thomas De Schampheleire
patrickdepinguin at gmail.com
Sun Jun 22 13:45:44 UTC 2014
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 <thomas.de.schampheleire at gmail.com>
---
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)
More information about the buildroot
mailing list