diff options
Diffstat (limited to 'scripts/kconfig/confdata.c')
-rw-r--r-- | scripts/kconfig/confdata.c | 49 |
1 files changed, 13 insertions, 36 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index 0586085136d1..9d0674473564 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c | |||
@@ -489,6 +489,17 @@ header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) | |||
489 | fprintf(fp, "#define %s%s%s 1\n", | 489 | fprintf(fp, "#define %s%s%s 1\n", |
490 | CONFIG_, sym->name, suffix); | 490 | CONFIG_, sym->name, suffix); |
491 | } | 491 | } |
492 | /* | ||
493 | * Generate the __enabled_CONFIG_* and | ||
494 | * __enabled_CONFIG_*_MODULE macros for use by the | ||
495 | * IS_{ENABLED,BUILTIN,MODULE} macros. The _MODULE variant is | ||
496 | * generated even for booleans so that the IS_ENABLED() macro | ||
497 | * works. | ||
498 | */ | ||
499 | fprintf(fp, "#define __enabled_" CONFIG_ "%s %d\n", | ||
500 | sym->name, (*value == 'y')); | ||
501 | fprintf(fp, "#define __enabled_" CONFIG_ "%s_MODULE %d\n", | ||
502 | sym->name, (*value == 'm')); | ||
492 | break; | 503 | break; |
493 | } | 504 | } |
494 | case S_HEX: { | 505 | case S_HEX: { |
@@ -540,35 +551,6 @@ static struct conf_printer header_printer_cb = | |||
540 | }; | 551 | }; |
541 | 552 | ||
542 | /* | 553 | /* |
543 | * Generate the __enabled_CONFIG_* and __enabled_CONFIG_*_MODULE macros for | ||
544 | * use by the IS_{ENABLED,BUILTIN,MODULE} macros. The _MODULE variant is | ||
545 | * generated even for booleans so that the IS_ENABLED() macro works. | ||
546 | */ | ||
547 | static void | ||
548 | header_print__enabled_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg) | ||
549 | { | ||
550 | |||
551 | switch (sym->type) { | ||
552 | case S_BOOLEAN: | ||
553 | case S_TRISTATE: { | ||
554 | fprintf(fp, "#define __enabled_" CONFIG_ "%s %d\n", | ||
555 | sym->name, (*value == 'y')); | ||
556 | fprintf(fp, "#define __enabled_" CONFIG_ "%s_MODULE %d\n", | ||
557 | sym->name, (*value == 'm')); | ||
558 | break; | ||
559 | } | ||
560 | default: | ||
561 | break; | ||
562 | } | ||
563 | } | ||
564 | |||
565 | static struct conf_printer header__enabled_printer_cb = | ||
566 | { | ||
567 | .print_symbol = header_print__enabled_symbol, | ||
568 | .print_comment = header_print_comment, | ||
569 | }; | ||
570 | |||
571 | /* | ||
572 | * Tristate printer | 554 | * Tristate printer |
573 | * | 555 | * |
574 | * This printer is used when generating the `include/config/tristate.conf' file. | 556 | * This printer is used when generating the `include/config/tristate.conf' file. |
@@ -949,16 +931,11 @@ int conf_write_autoconf(void) | |||
949 | conf_write_heading(out_h, &header_printer_cb, NULL); | 931 | conf_write_heading(out_h, &header_printer_cb, NULL); |
950 | 932 | ||
951 | for_all_symbols(i, sym) { | 933 | for_all_symbols(i, sym) { |
952 | if (!sym->name) | ||
953 | continue; | ||
954 | |||
955 | sym_calc_value(sym); | 934 | sym_calc_value(sym); |
956 | 935 | if (!(sym->flags & SYMBOL_WRITE) || !sym->name) | |
957 | conf_write_symbol(out_h, sym, &header__enabled_printer_cb, NULL); | ||
958 | |||
959 | if (!(sym->flags & SYMBOL_WRITE)) | ||
960 | continue; | 936 | continue; |
961 | 937 | ||
938 | /* write symbol to auto.conf, tristate and header files */ | ||
962 | conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1); | 939 | conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1); |
963 | 940 | ||
964 | conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1); | 941 | conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1); |