kbuild: move autoconf.h to include/generated

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
Sam Ravnborg 2009-10-18 00:49:24 +02:00 committed by Michal Marek
parent 98b8788ae9
commit 264a268380
7 changed files with 16 additions and 15 deletions

1
.gitignore vendored
View file

@ -46,7 +46,6 @@ Module.symvers
# Generated include files # Generated include files
# #
include/config include/config
include/linux/autoconf.h
include/linux/version.h include/linux/version.h
include/linux/utsrelease.h include/linux/utsrelease.h
include/generated include/generated

View file

@ -106,7 +106,8 @@ This environment variable can be set to specify the path & name of the
KCONFIG_AUTOHEADER KCONFIG_AUTOHEADER
-------------------------------------------------- --------------------------------------------------
This environment variable can be set to specify the path & name of the This environment variable can be set to specify the path & name of the
"autoconf.h" (header) file. Its default value is "include/linux/autoconf.h". "autoconf.h" (header) file.
Its default value is "include/generated/autoconf.h".
====================================================================== ======================================================================

View file

@ -336,7 +336,7 @@ CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
# Needed to be compatible with the O= option # Needed to be compatible with the O= option
LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \ LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
$(if $(KBUILD_SRC), -I$(srctree)/include) \ $(if $(KBUILD_SRC), -I$(srctree)/include) \
-include include/linux/autoconf.h -include include/generated/autoconf.h
KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CPPFLAGS := -D__KERNEL__
@ -492,17 +492,18 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
# if auto.conf.cmd is missing then we are probably in a cleaned tree so # 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 # we execute the config step to be sure to catch updated Kconfig files
include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
$(Q)mkdir -p include/generated
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
else else
# external modules needs include/linux/autoconf.h and include/config/auto.conf # external modules needs include/generated/autoconf.h and include/config/auto.conf
# but do not care if they are up-to-date. Use auto.conf to trigger the test # but do not care if they are up-to-date. Use auto.conf to trigger the test
PHONY += include/config/auto.conf PHONY += include/config/auto.conf
include/config/auto.conf: include/config/auto.conf:
$(Q)test -e include/linux/autoconf.h -a -e $@ || ( \ $(Q)test -e include/generated/autoconf.h -a -e $@ || ( \
echo; \ echo; \
echo " ERROR: Kernel configuration is invalid."; \ echo " ERROR: Kernel configuration is invalid."; \
echo " include/linux/autoconf.h or $@ are missing."; \ echo " include/generated/autoconf.h or $@ are missing.";\
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo; \ echo; \
/bin/false) /bin/false)
@ -1149,7 +1150,7 @@ CLEAN_FILES += vmlinux System.map \
# Directories & files removed with 'make mrproper' # Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config usr/include include/generated MRPROPER_DIRS += include/config usr/include include/generated
MRPROPER_FILES += .config .config.old .version .old_version \ MRPROPER_FILES += .config .config.old .version .old_version \
include/linux/autoconf.h include/linux/version.h \ include/linux/version.h \
include/linux/utsrelease.h \ include/linux/utsrelease.h \
Module.symvers Module.markers tags TAGS cscope* Module.symvers Module.markers tags TAGS cscope*

View file

@ -196,7 +196,7 @@
* for them and trying to understand what they mean. * for them and trying to understand what they mean.
* *
* CONFIG_xxx: These are the obvious machine configuration defines created * CONFIG_xxx: These are the obvious machine configuration defines created
* during configuration. These are defined in include/linux/autoconf.h. * during configuration. These are defined in autoconf.h.
* *
* CONSOLE: There is support for head.S console in this file. This * CONSOLE: There is support for head.S console in this file. This
* console can talk to a Mac frame buffer, but could easily be extrapolated * console can talk to a Mac frame buffer, but could easily be extrapolated

View file

@ -16,15 +16,15 @@
* tells make when to remake a file. * tells make when to remake a file.
* *
* To use this list as-is however has the drawback that virtually * To use this list as-is however has the drawback that virtually
* every file in the kernel includes <linux/autoconf.h>. * every file in the kernel includes autoconf.h.
* *
* If the user re-runs make *config, linux/autoconf.h will be * If the user re-runs make *config, autoconf.h will be
* regenerated. make notices that and will rebuild every file which * regenerated. make notices that and will rebuild every file which
* includes autoconf.h, i.e. basically all files. This is extremely * includes autoconf.h, i.e. basically all files. This is extremely
* annoying if the user just changed CONFIG_HIS_DRIVER from n to m. * annoying if the user just changed CONFIG_HIS_DRIVER from n to m.
* *
* So we play the same trick that "mkdep" played before. We replace * So we play the same trick that "mkdep" played before. We replace
* the dependency on linux/autoconf.h by a dependency on every config * the dependency on autoconf.h by a dependency on every config
* option which is mentioned in any of the listed prequisites. * option which is mentioned in any of the listed prequisites.
* *
* kconfig populates a tree in include/config/ with an empty file * kconfig populates a tree in include/config/ with an empty file
@ -73,7 +73,7 @@
* cmd_<target> = <cmdline> * cmd_<target> = <cmdline>
* *
* and then basically copies the .<target>.d file to stdout, in the * and then basically copies the .<target>.d file to stdout, in the
* process filtering out the dependency on linux/autoconf.h and adding * process filtering out the dependency on autoconf.h and adding
* dependencies on include/config/my/option.h for every * dependencies on include/config/my/option.h for every
* CONFIG_MY_OPTION encountered in any of the prequisites. * CONFIG_MY_OPTION encountered in any of the prequisites.
* *
@ -324,7 +324,7 @@ static void parse_dep_file(void *map, size_t len)
p++; p++;
} }
memcpy(s, m, p-m); s[p-m] = 0; memcpy(s, m, p-m); s[p-m] = 0;
if (strrcmp(s, "include/linux/autoconf.h") && if (strrcmp(s, "include/generated/autoconf.h") &&
strrcmp(s, "arch/um/include/uml-config.h") && strrcmp(s, "arch/um/include/uml-config.h") &&
strrcmp(s, ".ver")) { strrcmp(s, ".ver")) {
printf(" %s \\\n", s); printf(" %s \\\n", s);

View file

@ -776,7 +776,7 @@ int conf_write_autoconf(void)
name = getenv("KCONFIG_AUTOHEADER"); name = getenv("KCONFIG_AUTOHEADER");
if (!name) if (!name)
name = "include/linux/autoconf.h"; name = "include/generated/autoconf.h";
if (rename(".tmpconfig.h", name)) if (rename(".tmpconfig.h", name))
return 1; return 1;
name = conf_get_autoconfig_name(); name = conf_get_autoconfig_name();

View file

@ -14,7 +14,7 @@ vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; }
# So "sudo make install" won't change the "compiled by <user>" # So "sudo make install" won't change the "compiled by <user>"
# do "compiled by root" # do "compiled by root"
if [ -r $TARGET -a ! -O include/linux/autoconf.h ]; then if [ -r $TARGET -a ! -O include/generated/autoconf.h ]; then
vecho " SKIPPED $TARGET" vecho " SKIPPED $TARGET"
exit 0 exit 0
fi fi