build: new fixes for symlinked .config handling
When running "make {config|defconfig|oldconfig}" with symlinked .config
(e.g. to env/.config) it renames symlink to .config.old, creates new
.config file, and writes the updated configuration into it.
This breaks the desired workflow when changes in the configuration can
be checked using "scripts/env diff" and commited using "scripts/env
save". Since the env/.config file is not updated.
The things become even worse when working with feeds, since feeds script
quite often silently invokes "make {oldconfig|defconfig}" and breaks the
symlink.
Fix this issue by exporting KCONFIG_OVERWRITECONFIG=1, which forces
mconf to overwrite the .config content, instead of renaming it and
creating a new file. This variable is set only if .config is a symlink,
otherwise the variable is not exported and the old behaviour is
preserved.
This change uses the same behaviour as "make menucofig", which has
already been fixed in commit 5bf98b1acc
.
Also make a tiny cosmetic update to the "make menuconfig" target code
layout to make it look like other config handling targets.
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
This commit is contained in:
parent
44da45a881
commit
e06d8f0f6f
1 changed files with 8 additions and 4 deletions
|
@ -107,7 +107,8 @@ scripts/config/conf:
|
||||||
@$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)"
|
@$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)"
|
||||||
|
|
||||||
config: scripts/config/conf prepare-tmpinfo FORCE
|
config: scripts/config/conf prepare-tmpinfo FORCE
|
||||||
$< Config.in
|
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; \
|
||||||
|
$< Config.in
|
||||||
|
|
||||||
config-clean: FORCE
|
config-clean: FORCE
|
||||||
$(_SINGLE)$(NO_TRACE_MAKE) -C scripts/config clean
|
$(_SINGLE)$(NO_TRACE_MAKE) -C scripts/config clean
|
||||||
|
@ -115,7 +116,8 @@ config-clean: FORCE
|
||||||
defconfig: scripts/config/conf prepare-tmpinfo FORCE
|
defconfig: scripts/config/conf prepare-tmpinfo FORCE
|
||||||
touch .config
|
touch .config
|
||||||
@if [ ! -s .config -a -e $(HOME)/.openwrt/defconfig ]; then cp $(HOME)/.openwrt/defconfig .config; fi
|
@if [ ! -s .config -a -e $(HOME)/.openwrt/defconfig ]; then cp $(HOME)/.openwrt/defconfig .config; fi
|
||||||
$< --defconfig=.config Config.in
|
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; \
|
||||||
|
$< --defconfig=.config Config.in
|
||||||
|
|
||||||
confdefault-y=allyes
|
confdefault-y=allyes
|
||||||
confdefault-m=allmod
|
confdefault-m=allmod
|
||||||
|
@ -123,13 +125,15 @@ confdefault-n=allno
|
||||||
confdefault:=$(confdefault-$(CONFDEFAULT))
|
confdefault:=$(confdefault-$(CONFDEFAULT))
|
||||||
|
|
||||||
oldconfig: scripts/config/conf prepare-tmpinfo FORCE
|
oldconfig: scripts/config/conf prepare-tmpinfo FORCE
|
||||||
$< --$(if $(confdefault),$(confdefault),old)config Config.in
|
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; \
|
||||||
|
$< --$(if $(confdefault),$(confdefault),old)config Config.in
|
||||||
|
|
||||||
menuconfig: scripts/config/mconf prepare-tmpinfo FORCE
|
menuconfig: scripts/config/mconf prepare-tmpinfo FORCE
|
||||||
if [ \! -e .config -a -e $(HOME)/.openwrt/defconfig ]; then \
|
if [ \! -e .config -a -e $(HOME)/.openwrt/defconfig ]; then \
|
||||||
cp $(HOME)/.openwrt/defconfig .config; \
|
cp $(HOME)/.openwrt/defconfig .config; \
|
||||||
fi
|
fi
|
||||||
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; $< Config.in
|
[ -L .config ] && export KCONFIG_OVERWRITECONFIG=1; \
|
||||||
|
$< Config.in
|
||||||
|
|
||||||
prepare_kernel_conf: .config FORCE
|
prepare_kernel_conf: .config FORCE
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue