From e6dc0559a9d44fe5e63644621dfb1871bc990481 Mon Sep 17 00:00:00 2001 From: Michal Marek Date: Wed, 8 Jun 2011 17:40:20 +0200 Subject: [PATCH] --- yaml --- r: 261625 b: refs/heads/master c: 36fee53510f91d8ac5eb5dcba0e431a21ebdd5cd h: refs/heads/master i: 261623: cdea5de7ac9be76691f8b3b94e0c4db1a9def560 v: v3 --- [refs] | 2 +- trunk/scripts/kconfig/confdata.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 036b6666f147..c8e4aa17e7c0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1ea3ad4e93222faf1d138ceb10291376d2da7cc6 +refs/heads/master: 36fee53510f91d8ac5eb5dcba0e431a21ebdd5cd diff --git a/trunk/scripts/kconfig/confdata.c b/trunk/scripts/kconfig/confdata.c index c257bb0bf90a..a49cf4f7dca5 100644 --- a/trunk/scripts/kconfig/confdata.c +++ b/trunk/scripts/kconfig/confdata.c @@ -773,6 +773,29 @@ static int conf_split_config(void) return res; } +static void conf_write_function_autoconf(FILE *out, char* conf, char* name, + int val) +{ + char c; + char *tmp, *d; + + d = strdup(conf); + tmp = d; + while ((c = *conf++)) + *d++ = tolower(c); + + fprintf(out, "#define %sis_", tmp); + free(tmp); + + d = strdup(name); + tmp = d; + while ((c = *name++)) + *d++ = tolower(c); + fprintf(out, "%s%s() %d\n", tmp, (val > 1) ? "_module" : "", + val ? 1 : 0); + free(tmp); +} + int conf_write_autoconf(void) { struct symbol *sym; @@ -820,6 +843,7 @@ int conf_write_autoconf(void) rootmenu.prompt->text); for_all_symbols(i, sym) { + int fct_val = 0; sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE) || !sym->name) continue; @@ -839,6 +863,7 @@ int conf_write_autoconf(void) CONFIG_, sym->name); fprintf(out_h, "#define %s%s_MODULE 1\n", CONFIG_, sym->name); + fct_val = 2; break; case yes: if (sym->type == S_TRISTATE) @@ -846,8 +871,10 @@ int conf_write_autoconf(void) CONFIG_, sym->name); fprintf(out_h, "#define %s%s 1\n", CONFIG_, sym->name); + fct_val = 1; break; } + conf_write_function_autoconf(out_h, CONFIG_, sym->name, fct_val); break; case S_STRING: conf_write_string(true, sym->name, sym_get_string_value(sym), out_h);