Re: [PATCH 13/14] kbuild: move autoconf.h to include/generated

From: Michal Marek
Date: Wed Nov 25 2009 - 09:28:35 EST


On Sun, Oct 18, 2009 at 10:15:22AM +0200, Sam Ravnborg wrote:
> diff --git a/Makefile b/Makefile
> index 6570cf1..b125cd9 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -336,7 +336,7 @@ CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
> # Needed to be compatible with the O= option
> LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
> $(if $(KBUILD_SRC), -I$(srctree)/include) \
> - -include include/linux/autoconf.h
> + -include include/generated/autoconf.h
>
> KBUILD_CPPFLAGS := -D__KERNEL__
>
> @@ -491,17 +491,18 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
> # if auto.conf.cmd is missing then we are probably in a cleaned tree so
> # we execute the config step to be sure to catch updated Kconfig files
> include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
> + $(Q)mkdir -p include/generated
> $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig

This doesn't work if one runs make silentoldconfig directly. I fixed
this with the following patch in my tree (will be pushed out soon).

Michal

Subject: [PATCH] kbuild: create include/generated in silentoldconfig

The toplevel Makefile creates the directory if it runs silentoldconfig
automatically, but if run manually, it fails:

$ make mrproper
$ make defconfig && make silentoldconfig
*** Default configuration is based on 'x86_64_defconfig'
#
# configuration written to .config
#
scripts/kconfig/conf -s arch/x86/Kconfig

*** Error during update of the kernel configuration.
...

Move the mkdir command to the silentoldconfig target to make it work.

Signed-off-by: Michal Marek <mmarek@xxxxxxx>
---
Makefile | 1 -
scripts/kconfig/Makefile | 1 +
2 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 7bd2531..74ad9a9 100644
--- a/Makefile
+++ b/Makefile
@@ -491,7 +491,6 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
# if auto.conf.cmd is missing then we are probably in a cleaned tree so
# we execute the config step to be sure to catch updated Kconfig files
include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
- $(Q)mkdir -p include/generated
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
else
# external modules needs include/generated/autoconf.h and include/config/auto.conf
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 6d69c7c..ca5ce8e 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -27,6 +27,7 @@ oldconfig: $(obj)/conf
$< -o $(Kconfig)

silentoldconfig: $(obj)/conf
+ $(Q)mkdir -p include/generated
$< -s $(Kconfig)

localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
--
1.6.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/