full removed config.h, use bb_config.h only
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -386,7 +386,7 @@ docs/busybox.net/BusyBox.html: docs/busybox.pod | |
| scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c | |
| $(HOSTCC) $(HOSTCFLAGS) -o $@ $< | |
| - | DEP_INCLUDES := include/config.h include/bb_config.h |
| + | DEP_INCLUDES := include/bb_config.h |
| ifeq ($(strip $(CONFIG_BBCONFIG)),y) | |
| DEP_INCLUDES += include/bbconfigopts.h | |
| @@ -401,25 +401,15 @@ depend dep: .depend | |
| $(disp_gen) | |
| $(Q)$(RM_F) .depend | |
| $(Q)mkdir -p include/config | |
| - | $(Q)scripts/bb_mkdep -c include/config.h -c include/bb_config.h \ |
| - | -I $(top_srcdir)/include $(top_srcdir) > [email protected] |
| + | $(Q)scripts/bb_mkdep -I $(top_srcdir)/include $(top_srcdir) > [email protected] |
| $(Q)mv [email protected] $@ | |
| - | include/config.h: .config |
| + | include/bb_config.h: .config |
| @if [ ! -x $(top_builddir)/scripts/config/conf ] ; then \ | |
| $(MAKE) -C scripts/config conf; \ | |
| fi; | |
| @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN) | |
| - | include/bb_config.h: include/config.h |
| - | @echo -e "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H" > $@ |
| - | @sed -e h -e 's/#undef CONFIG_\(.*\)/#define ENABLE_\1 0/p' -e g \ |
| - | -e 's/#undef CONFIG_\(.*\)/#define USE_\1(...)/p' -e g \ |
| - | -e 's/#define CONFIG_\([^ ]*\).*/#define ENABLE_\1 1/p' -e g -e \ |
| - | 's/#define CONFIG_\([^ ]*\).*/#define USE_\1(...) __VA_ARGS__/p' \ |
| - | -e g $< >> $@ |
| - | @echo "#endif" >> $@ |
| - | |
| clean: | |
| - $(MAKE) -C scripts/config $@ | |
| - $(RM_F) docs/busybox.dvi docs/busybox.ps \ | |
| @@ -1,2 +1,3 @@ | |
| config | |
| - | config.h |
| + | bb_config.h |
| + | bbconfigopts.h |
| @@ -1,5 +1,5 @@ | |
| /* | |
| - | * Another fast dependencies generator for Makefiles, Version 4.0 |
| + | * Another fast dependencies generator for Makefiles, Version 4.1 |
| * | |
| * Copyright (C) 2005,2006 by Vladimir Oleynik <[email protected]> | |
| * | |
| @@ -26,7 +26,7 @@ | |
| * - more verbose --help output. | |
| * | |
| * This program does: | |
| - | * 1) find #define KEY VALUE or #undef KEY from include/config.h |
| + | * 1) find #define KEY VALUE or #undef KEY from include/bb_config.h |
| * 2) recursive find and scan *.[ch] files, but skips scan of include/config/ | |
| * 3) find #include "*.h" and KEYs using, if not as #define and #undef | |
| * 4) generate dependencies to stdout | |
| @@ -39,7 +39,7 @@ | |
| #define LOCAL_INCLUDE_PATH "include" | |
| #define INCLUDE_CONFIG_PATH LOCAL_INCLUDE_PATH"/config" | |
| - | #define INCLUDE_CONFIG_KEYS_PATH LOCAL_INCLUDE_PATH"/config.h" |
| + | #define INCLUDE_CONFIG_KEYS_PATH LOCAL_INCLUDE_PATH"/bb_config.h" |
| #define bb_mkdep_full_options \ | |
| "\nOptions:" \ | |
| @@ -308,7 +308,7 @@ typedef unsigned char operator; | |
| #define TOK_UMINUS tok_decl(UNARYPREC+1,0) | |
| #define TOK_UPLUS tok_decl(UNARYPREC+1,1) | |
| - | #define SPEC_PREC (UNARYPREC+1) |
| + | #define SPEC_PREC (UNARYPREC+2) |
| #define TOK_NUM tok_decl(SPEC_PREC, 0) | |
| #define TOK_RPAREN tok_decl(SPEC_PREC, 1) | |
| @@ -521,13 +521,6 @@ endofname(const char *name) | |
| } | |
| - | /* Like strncpy but make sure the resulting string is always 0 terminated. */ |
| - | static inline char * safe_strncpy(char *dst, const char *src, size_t size) |
| - | { |
| - | dst[size-1] = '\0'; |
| - | return strncpy(dst, src, size-1); |
| - | } |
| - | |
| static arith_t arith (const char *expr, int *perrcode) | |
| { | |
| char arithval; /* Current character under analysis */ | |
| @@ -1400,7 +1393,10 @@ static void store_keys(void) | |
| if(*val == '\0') { | |
| recordsz = sprintf(record_buf, "#define %s\n", k); | |
| } else { | |
| - | recordsz = sprintf(record_buf, "#define %s %s\n", k, val); |
| + | if(val[0] != '(') |
| + | recordsz = sprintf(record_buf, "#define %s %s\n", k, val); |
| + | else |
| + | recordsz = sprintf(record_buf, "#define %s%s\n", k, val); |
| } | |
| } | |
| /* size_t -> ssize_t :( */ | |
| @@ -279,6 +279,7 @@ int conf_write(const char *name) | |
| char dirname[128], tmpname[128], newname[128]; | |
| int type, l; | |
| const char *str; | |
| + | const char *opt_name; |
| dirname[0] = 0; | |
| if (name && name[0]) { | |
| @@ -316,6 +317,7 @@ int conf_write(const char *name) | |
| "# Automatically generated make config: don't edit\n" | |
| "#\n"); | |
| if (out_h) { | |
| + | fprintf(out_h, "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H\n"); |
| fprintf(out_h, "/*\n" | |
| " * Automatically generated header file: don't edit\n" | |
| " */\n\n" | |
| @@ -367,14 +369,23 @@ int conf_write(const char *name) | |
| if (modules_sym->curr.tri == no) | |
| type = S_BOOLEAN; | |
| } | |
| + | opt_name = strchr(sym->name, '_'); |
| + | if(opt_name == NULL) |
| + | opt_name = sym->name; |
| + | else |
| + | opt_name++; |
| switch (type) { | |
| case S_BOOLEAN: | |
| case S_TRISTATE: | |
| switch (sym_get_tristate_value(sym)) { | |
| case no: | |
| fprintf(out, "# %s is not set\n", sym->name); | |
| - | if (out_h) |
| + | if (out_h) { |
| fprintf(out_h, "#undef %s\n", sym->name); | |
| + | fprintf(out_h, "#define ENABLE_%s 0\n", opt_name); |
| + | fprintf(out_h, "#define USE_%s(...)\n", opt_name); |
| + | fprintf(out_h, "#define UNUSE_%s(...) __VA_ARGS__\n", opt_name); |
| + | } |
| break; | |
| case mod: | |
| #if 0 | |
| @@ -385,8 +396,12 @@ int conf_write(const char *name) | |
| break; | |
| case yes: | |
| fprintf(out, "%s=y\n", sym->name); | |
| - | if (out_h) |
| + | if (out_h) { |
| fprintf(out_h, "#define %s 1\n", sym->name); | |
| + | fprintf(out_h, "#define ENABLE_%s 1\n", opt_name); |
| + | fprintf(out_h, "#define USE_%s(...) __VA_ARGS__\n", opt_name); |
| + | fprintf(out_h, "#define UNUSE_%s(...)\n", opt_name); |
| + | } |
| break; | |
| } | |
| break; | |
| @@ -412,32 +427,47 @@ int conf_write(const char *name) | |
| } | |
| } while (*str); | |
| fputs("\"\n", out); | |
| - | if (out_h) |
| + | if (out_h) { |
| fputs("\"\n", out_h); | |
| + | fprintf(out_h, "#define ENABLE_%s 1\n", opt_name); |
| + | fprintf(out_h, "#define USE_%s(...) __VA_ARGS__\n", opt_name); |
| + | fprintf(out_h, "#define UNUSE_%s(...)\n", opt_name); |
| + | } |
| break; | |
| case S_HEX: | |
| str = sym_get_string_value(sym); | |
| if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { | |
| fprintf(out, "%s=%s\n", sym->name, *str ? str : "0"); | |
| - | if (out_h) |
| + | if (out_h) { |
| fprintf(out_h, "#define %s 0x%s\n", sym->name, str); | |
| + | fprintf(out_h, "#define ENABLE_%s 1\n", opt_name); |
| + | fprintf(out_h, "#define USE_%s(...) __VA_ARGS__\n", opt_name); |
| + | fprintf(out_h, "#define UNUSE_%s(...)\n", opt_name); |
| + | } |
| break; | |
| } | |
| case S_INT: | |
| str = sym_get_string_value(sym); | |
| fprintf(out, "%s=%s\n", sym->name, *str ? str : "0"); | |
| - | if (out_h) |
| + | if (out_h) { |
| fprintf(out_h, "#define %s %s\n", sym->name, str); | |
| + | fprintf(out_h, "#define ENABLE_%s 1\n", opt_name); |
| + | fprintf(out_h, "#define USE_%s(...) __VA_ARGS__\n", opt_name); |
| + | fprintf(out_h, "#define UNUSE_%s(...)\n", opt_name); |
| + | } |
| break; | |
| } | |
| + | if (out_h) |
| + | fprintf(out_h, "\n"); |
| } | |
| next: | |
| menu = next_menu(menu); | |
| } | |
| fclose(out); | |
| if (out_h) { | |
| + | fprintf(out_h, "#endif /* BB_CONFIG_H */\n"); |
| fclose(out_h); | |
| - | rename(".tmpconfig.h", "include/config.h"); |
| + | rename(".tmpconfig.h", "include/bb_config.h"); |
| file_write_dep(NULL); | |
| } | |
| if (!name || basename != conf_def_filename) { | |