build: new fixes for symlinked .config handling
authorSergey Ryazanov <ryazanov.s.a@gmail.com>
Sun, 7 May 2017 17:19:13 +0000 (20:19 +0300)
committerJo-Philipp Wich <jo@mein.io>
Wed, 10 May 2017 22:53:05 +0000 (00:53 +0200)
commite06d8f0f6f041c8ac1acba810eea96c32dc983e4
tree6615c670582e18a8a8f655b10683b599b2806dbb
parent44da45a881a7aa13a237c5c8843dca914d40d7ae
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 5bf98b1acc3b6b178f8954c5075a58e1e6a99d6a.

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>
include/toplevel.mk