kconfig: do not hardcode "include/config/auto.conf" filename

Regardless of KCONFIG_AUTOCONFIG, the filename written as a Make target
into "include/config/auto.conf.cmd" was always the default one.

Of course this doesn't make it work for the Kernel kbuild system, since
there the filename is hardcoded at several places in the Makefiles.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
Markus Heidelberg 2009-05-18 01:36:54 +02:00 committed by Sam Ravnborg
parent 284026cdfb
commit 12122f6232
3 changed files with 16 additions and 11 deletions

View file

@ -41,6 +41,13 @@ const char *conf_get_configname(void)
return name ? name : ".config"; return name ? name : ".config";
} }
const char *conf_get_autoconfig_name(void)
{
char *name = getenv("KCONFIG_AUTOCONFIG");
return name ? name : "include/config/auto.conf";
}
static char *conf_expand_value(const char *in) static char *conf_expand_value(const char *in)
{ {
struct symbol *sym; struct symbol *sym;
@ -555,15 +562,14 @@ int conf_write(const char *name)
int conf_split_config(void) int conf_split_config(void)
{ {
char *name, path[128]; const char *name;
char path[128];
char *s, *d, c; char *s, *d, c;
struct symbol *sym; struct symbol *sym;
struct stat sb; struct stat sb;
int res, i, fd; int res, i, fd;
name = getenv("KCONFIG_AUTOCONFIG"); name = conf_get_autoconfig_name();
if (!name)
name = "include/config/auto.conf";
conf_read_simple(name, S_DEF_AUTO); conf_read_simple(name, S_DEF_AUTO);
if (chdir("include/config")) if (chdir("include/config"))
@ -670,7 +676,7 @@ int conf_write_autoconf(void)
{ {
struct symbol *sym; struct symbol *sym;
const char *str; const char *str;
char *name; const char *name;
FILE *out, *out_h; FILE *out, *out_h;
time_t now; time_t now;
int i, l; int i, l;
@ -773,9 +779,7 @@ int conf_write_autoconf(void)
name = "include/linux/autoconf.h"; name = "include/linux/autoconf.h";
if (rename(".tmpconfig.h", name)) if (rename(".tmpconfig.h", name))
return 1; return 1;
name = getenv("KCONFIG_AUTOCONFIG"); name = conf_get_autoconfig_name();
if (!name)
name = "include/config/auto.conf";
/* /*
* This must be the last step, kbuild has a dependency on auto.conf * This must be the last step, kbuild has a dependency on auto.conf
* and this marks the successful completion of the previous steps. * and this marks the successful completion of the previous steps.

View file

@ -74,6 +74,7 @@ char *zconf_curname(void);
/* confdata.c */ /* confdata.c */
const char *conf_get_configname(void); const char *conf_get_configname(void);
const char *conf_get_autoconfig_name(void);
char *conf_get_default_confname(void); char *conf_get_default_confname(void);
void sym_set_change_count(int count); void sym_set_change_count(int count);
void sym_add_change_count(int count); void sym_add_change_count(int count);

View file

@ -46,8 +46,8 @@ int file_write_dep(const char *name)
else else
fprintf(out, "\t%s\n", file->name); fprintf(out, "\t%s\n", file->name);
} }
fprintf(out, "\ninclude/config/auto.conf: \\\n" fprintf(out, "\n%s: \\\n"
"\t$(deps_config)\n\n"); "\t$(deps_config)\n\n", conf_get_autoconfig_name());
expr_list_for_each_sym(sym_env_list, e, sym) { expr_list_for_each_sym(sym_env_list, e, sym) {
struct property *prop; struct property *prop;
@ -61,7 +61,7 @@ int file_write_dep(const char *name)
if (!value) if (!value)
value = ""; value = "";
fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value); fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
fprintf(out, "include/config/auto.conf: FORCE\n"); fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
fprintf(out, "endif\n"); fprintf(out, "endif\n");
} }