| diff -rduNp config.new.oorig/Makefile config.new/Makefile |
| --- config.new.oorig/Makefile 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/Makefile 2008-04-07 11:06:30.000000000 +0200 |
| @@ -123,6 +123,9 @@ hostprogs-y := conf qconf gconf kxgettex |
| ifeq ($(MAKECMDGOALS),menuconfig) |
| hostprogs-y += mconf |
| endif |
| +ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf) |
| + hostprogs-y += mconf |
| +endif |
| |
| ifeq ($(MAKECMDGOALS),xconfig) |
| qconf-target := 1 |
| @@ -181,8 +184,8 @@ $(obj)/.tmp_qtcheck: |
| done; \ |
| if [ -z "$$dir" ]; then \ |
| echo "*"; \ |
| - echo "* Unable to find the QT3 installation. Please make sure that"; \ |
| - echo "* the QT3 development package is correctly installed and"; \ |
| + echo "* Unable to find the QT installation. Please make sure that"; \ |
| + echo "* the QT development package is correctly installed and"; \ |
| echo "* either install pkg-config or set the QTDIR environment"; \ |
| echo "* variable to the correct location."; \ |
| echo "*"; \ |
| diff -rduNp config.new.oorig/conf.c config.new/conf.c |
| --- config.new.oorig/conf.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/conf.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -545,7 +545,7 @@ int main(int ac, char **av) |
| exit(1); |
| } |
| conf_parse(name); |
| - //zconfdump(stdout); |
| + /*zconfdump(stdout);*/ |
| switch (input_mode) { |
| case set_default: |
| if (!defconfig_file) |
| @@ -560,11 +560,11 @@ int main(int ac, char **av) |
| case ask_silent: |
| if (stat(".config", &tmpstat)) { |
| printf(_("***\n" |
| - "*** You have not yet configured your kernel!\n" |
| - "*** (missing kernel .config file)\n" |
| + "*** You have not yet configured Buildroot!\n" |
| + "*** (missing .config file)\n" |
| "***\n" |
| "*** Please run some configurator (e.g. \"make oldconfig\" or\n" |
| - "*** \"make menuconfig\" or \"make xconfig\").\n" |
| + "*** \"make menuconfig\" or \"make config\").\n" |
| "***\n")); |
| exit(1); |
| } |
| @@ -607,7 +607,7 @@ int main(int ac, char **av) |
| } else if (conf_get_changed()) { |
| name = getenv("KCONFIG_NOSILENTUPDATE"); |
| if (name && *name) { |
| - fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n")); |
| + fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n")); |
| return 1; |
| } |
| } else |
| @@ -618,12 +618,12 @@ int main(int ac, char **av) |
| check_conf(&rootmenu); |
| } while (conf_cnt); |
| if (conf_write(NULL)) { |
| - fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| + fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); |
| return 1; |
| } |
| skip_check: |
| - if (input_mode == ask_silent && conf_write_autoconf()) { |
| - fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| + if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) { |
| + fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); |
| return 1; |
| } |
| |
| diff -rduNp config.new.oorig/confdata.c config.new/confdata.c |
| --- config.new.oorig/confdata.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/confdata.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -11,6 +11,7 @@ |
| #include <string.h> |
| #include <time.h> |
| #include <unistd.h> |
| +#include <libgen.h> |
| |
| #define LKC_DIRECT_LINK |
| #include "lkc.h" |
| @@ -21,7 +22,7 @@ static void conf_warning(const char *fmt |
| static const char *conf_filename; |
| static int conf_lineno, conf_warnings, conf_unsaved; |
| |
| -const char conf_defname[] = "arch/$ARCH/defconfig"; |
| +const char conf_defname[] = ".defconfig"; |
| |
| static void conf_warning(const char *fmt, ...) |
| { |
| @@ -36,7 +37,7 @@ static void conf_warning(const char *fmt |
| |
| const char *conf_get_configname(void) |
| { |
| - char *name = getenv("KCONFIG_CONFIG"); |
| + char *name = getenv("BUILDROOT_CONFIG"); |
| |
| return name ? name : ".config"; |
| } |
| @@ -212,22 +213,22 @@ load: |
| sym = NULL; |
| switch (line[0]) { |
| case '#': |
| - if (memcmp(line + 2, "CONFIG_", 7)) |
| + if (line[1]!=' ') |
| continue; |
| - p = strchr(line + 9, ' '); |
| + p = strchr(line + 2, ' '); |
| if (!p) |
| continue; |
| *p++ = 0; |
| if (strncmp(p, "is not set", 10)) |
| continue; |
| if (def == S_DEF_USER) { |
| - sym = sym_find(line + 9); |
| + sym = sym_find(line + 2); |
| if (!sym) { |
| - conf_warning("trying to assign nonexistent symbol %s", line + 9); |
| + conf_warning("trying to assign nonexistent symbol %s", line + 2); |
| break; |
| } |
| } else { |
| - sym = sym_lookup(line + 9, 0); |
| + sym = sym_lookup(line + 2, 0); |
| if (sym->type == S_UNKNOWN) |
| sym->type = S_BOOLEAN; |
| } |
| @@ -245,12 +246,8 @@ load: |
| ; |
| } |
| break; |
| - case 'C': |
| - if (memcmp(line, "CONFIG_", 7)) { |
| - conf_warning("unexpected data"); |
| - continue; |
| - } |
| - p = strchr(line + 7, '='); |
| + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': |
| + p = strchr(line, '='); |
| if (!p) |
| continue; |
| *p++ = 0; |
| @@ -261,13 +258,13 @@ load: |
| *p2 = 0; |
| } |
| if (def == S_DEF_USER) { |
| - sym = sym_find(line + 7); |
| + sym = sym_find(line); |
| if (!sym) { |
| - conf_warning("trying to assign nonexistent symbol %s", line + 7); |
| + conf_warning("trying to assign nonexistent symbol %s", line); |
| break; |
| } |
| } else { |
| - sym = sym_lookup(line + 7, 0); |
| + sym = sym_lookup(line, 0); |
| if (sym->type == S_UNKNOWN) |
| sym->type = S_OTHER; |
| } |
| @@ -440,7 +437,7 @@ int conf_write(const char *name) |
| if (!out) |
| return 1; |
| |
| - sym = sym_lookup("KERNELVERSION", 0); |
| + sym = sym_lookup("BR2_VERSION", 0); |
| sym_calc_value(sym); |
| time(&now); |
| env = getenv("KCONFIG_NOTIMESTAMP"); |
| @@ -449,10 +446,8 @@ int conf_write(const char *name) |
| |
| fprintf(out, _("#\n" |
| "# Automatically generated make config: don't edit\n" |
| - "# Linux kernel version: %s\n" |
| "%s%s" |
| "#\n"), |
| - sym_get_string_value(sym), |
| use_timestamp ? "# " : "", |
| use_timestamp ? ctime(&now) : ""); |
| |
| @@ -486,19 +481,19 @@ int conf_write(const char *name) |
| case S_TRISTATE: |
| switch (sym_get_tristate_value(sym)) { |
| case no: |
| - fprintf(out, "# CONFIG_%s is not set\n", sym->name); |
| + fprintf(out, "# %s is not set\n", sym->name); |
| break; |
| case mod: |
| - fprintf(out, "CONFIG_%s=m\n", sym->name); |
| + fprintf(out, "%s=m\n", sym->name); |
| break; |
| case yes: |
| - fprintf(out, "CONFIG_%s=y\n", sym->name); |
| + fprintf(out, "%s=y\n", sym->name); |
| break; |
| } |
| break; |
| case S_STRING: |
| str = sym_get_string_value(sym); |
| - fprintf(out, "CONFIG_%s=\"", sym->name); |
| + fprintf(out, "%s=\"", sym->name); |
| while (1) { |
| l = strcspn(str, "\"\\"); |
| if (l) { |
| @@ -514,12 +509,12 @@ int conf_write(const char *name) |
| case S_HEX: |
| str = sym_get_string_value(sym); |
| if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { |
| - fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| + fprintf(out, "%s=%s\n", sym->name, str); |
| break; |
| } |
| case S_INT: |
| str = sym_get_string_value(sym); |
| - fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| + fprintf(out, "%s=%s\n", sym->name, str); |
| break; |
| } |
| } |
| @@ -559,7 +554,7 @@ int conf_write(const char *name) |
| |
| int conf_split_config(void) |
| { |
| - char *name, path[128]; |
| + char *name, path[128], *opwd, *dir, *_name; |
| char *s, *d, c; |
| struct symbol *sym; |
| struct stat sb; |
| @@ -570,8 +565,20 @@ int conf_split_config(void) |
| name = "include/config/auto.conf"; |
| conf_read_simple(name, S_DEF_AUTO); |
| |
| - if (chdir("include/config")) |
| + opwd = malloc(256); |
| + _name = strdup(name); |
| + if (opwd == NULL || _name == NULL) |
| return 1; |
| + opwd = getcwd(opwd, 256); |
| + dir = dirname(_name); |
| + if (dir == NULL) { |
| + res = 1; |
| + goto err; |
| + } |
| + if (chdir(dir)) { |
| + res = 1; |
| + goto err; |
| + } |
| |
| res = 0; |
| for_all_symbols(i, sym) { |
| @@ -664,9 +671,11 @@ int conf_split_config(void) |
| close(fd); |
| } |
| out: |
| - if (chdir("../..")) |
| - return 1; |
| - |
| + if (chdir(opwd)) |
| + res = 1; |
| +err: |
| + free(opwd); |
| + free(_name); |
| return res; |
| } |
| |
| @@ -681,7 +690,7 @@ int conf_write_autoconf(void) |
| |
| sym_clear_all_valid(); |
| |
| - file_write_dep("include/config/auto.conf.cmd"); |
| + file_write_dep(".config.cmd"); |
| |
| if (conf_split_config()) |
| return 1; |
| @@ -696,22 +705,19 @@ int conf_write_autoconf(void) |
| return 1; |
| } |
| |
| - sym = sym_lookup("KERNELVERSION", 0); |
| + sym = sym_lookup("BR2_VERSION", 0); |
| sym_calc_value(sym); |
| time(&now); |
| fprintf(out, "#\n" |
| "# Automatically generated make config: don't edit\n" |
| - "# Linux kernel version: %s\n" |
| "# %s" |
| "#\n", |
| - sym_get_string_value(sym), ctime(&now)); |
| + ctime(&now)); |
| fprintf(out_h, "/*\n" |
| " * Automatically generated C config: don't edit\n" |
| - " * Linux kernel version: %s\n" |
| " * %s" |
| - " */\n" |
| - "#define AUTOCONF_INCLUDED\n", |
| - sym_get_string_value(sym), ctime(&now)); |
| + " */\n", |
| + ctime(&now)); |
| |
| for_all_symbols(i, sym) { |
| sym_calc_value(sym); |
| @@ -724,19 +730,19 @@ int conf_write_autoconf(void) |
| case no: |
| break; |
| case mod: |
| - fprintf(out, "CONFIG_%s=m\n", sym->name); |
| - fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name); |
| + fprintf(out, "%s=m\n", sym->name); |
| + fprintf(out_h, "#define %s_MODULE 1\n", sym->name); |
| break; |
| case yes: |
| - fprintf(out, "CONFIG_%s=y\n", sym->name); |
| - fprintf(out_h, "#define CONFIG_%s 1\n", sym->name); |
| + fprintf(out, "%s=y\n", sym->name); |
| + fprintf(out_h, "#define %s 1\n", sym->name); |
| break; |
| } |
| break; |
| case S_STRING: |
| str = sym_get_string_value(sym); |
| - fprintf(out, "CONFIG_%s=\"", sym->name); |
| - fprintf(out_h, "#define CONFIG_%s \"", sym->name); |
| + fprintf(out, "%s=\"", sym->name); |
| + fprintf(out_h, "#define %s \"", sym->name); |
| while (1) { |
| l = strcspn(str, "\"\\"); |
| if (l) { |
| @@ -756,14 +762,14 @@ int conf_write_autoconf(void) |
| case S_HEX: |
| str = sym_get_string_value(sym); |
| if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { |
| - fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| - fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str); |
| + fprintf(out, "%s=%s\n", sym->name, str); |
| + fprintf(out_h, "#define %s 0x%s\n", sym->name, str); |
| break; |
| } |
| case S_INT: |
| str = sym_get_string_value(sym); |
| - fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| - fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str); |
| + fprintf(out, "%s=%s\n", sym->name, str); |
| + fprintf(out_h, "#define %s %s\n", sym->name, str); |
| break; |
| default: |
| break; |
| diff -rduNp config.new.oorig/expr.c config.new/expr.c |
| --- config.new.oorig/expr.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/expr.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -331,7 +331,7 @@ struct expr *expr_trans_bool(struct expr |
| e->right.expr = expr_trans_bool(e->right.expr); |
| break; |
| case E_UNEQUAL: |
| - // FOO!=n -> FOO |
| + /* FOO!=n -> FOO */ |
| if (e->left.sym->type == S_TRISTATE) { |
| if (e->right.sym == &symbol_no) { |
| e->type = E_SYMBOL; |
| @@ -380,19 +380,19 @@ struct expr *expr_join_or(struct expr *e |
| if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || |
| (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { |
| - // (a='y') || (a='m') -> (a!='n') |
| + /* (a='y') || (a='m') -> (a!='n') */ |
| return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no); |
| } |
| if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || |
| (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { |
| - // (a='y') || (a='n') -> (a!='m') |
| + /* (a='y') || (a='n') -> (a!='m') */ |
| return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod); |
| } |
| if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || |
| (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { |
| - // (a='m') || (a='n') -> (a!='y') |
| + /* (a='m') || (a='n') -> (a!='y') */ |
| return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes); |
| } |
| } |
| @@ -443,29 +443,29 @@ struct expr *expr_join_and(struct expr * |
| |
| if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || |
| (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) |
| - // (a) && (a='y') -> (a='y') |
| + /* (a) && (a='y') -> (a='y') */ |
| return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| |
| if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || |
| (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) |
| - // (a) && (a!='n') -> (a) |
| + /* (a) && (a!='n') -> (a) */ |
| return expr_alloc_symbol(sym1); |
| |
| if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || |
| (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) |
| - // (a) && (a!='m') -> (a='y') |
| + /* (a) && (a!='m') -> (a='y') */ |
| return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| |
| if (sym1->type == S_TRISTATE) { |
| if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { |
| - // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' |
| + /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ |
| sym2 = e1->right.sym; |
| if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) |
| return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) |
| : expr_alloc_symbol(&symbol_no); |
| } |
| if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { |
| - // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' |
| + /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ |
| sym2 = e2->right.sym; |
| if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) |
| return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) |
| @@ -474,19 +474,19 @@ struct expr *expr_join_and(struct expr * |
| if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || |
| (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) |
| - // (a!='y') && (a!='n') -> (a='m') |
| + /* (a!='y') && (a!='n') -> (a='m') */ |
| return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod); |
| |
| if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || |
| (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) |
| - // (a!='y') && (a!='m') -> (a='n') |
| + /* (a!='y') && (a!='m') -> (a='n') */ |
| return expr_alloc_comp(E_EQUAL, sym1, &symbol_no); |
| |
| if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || |
| (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) |
| - // (a!='m') && (a!='n') -> (a='m') |
| + /* (a!='m') && (a!='n') -> (a='m') */ |
| return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| |
| if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || |
| @@ -579,7 +579,7 @@ static void expr_eliminate_dups2(enum ex |
| switch (e1->type) { |
| case E_OR: |
| expr_eliminate_dups2(e1->type, &e1, &e1); |
| - // (FOO || BAR) && (!FOO && !BAR) -> n |
| + /* (FOO || BAR) && (!FOO && !BAR) -> n */ |
| tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); |
| tmp2 = expr_copy(e2); |
| tmp = expr_extract_eq_and(&tmp1, &tmp2); |
| @@ -594,7 +594,7 @@ static void expr_eliminate_dups2(enum ex |
| break; |
| case E_AND: |
| expr_eliminate_dups2(e1->type, &e1, &e1); |
| - // (FOO && BAR) || (!FOO || !BAR) -> y |
| + /* (FOO && BAR) || (!FOO || !BAR) -> y */ |
| tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); |
| tmp2 = expr_copy(e2); |
| tmp = expr_extract_eq_or(&tmp1, &tmp2); |
| @@ -703,7 +703,7 @@ struct expr *expr_transform(struct expr |
| case E_NOT: |
| switch (e->left.expr->type) { |
| case E_NOT: |
| - // !!a -> a |
| + /* !!a -> a */ |
| tmp = e->left.expr->left.expr; |
| free(e->left.expr); |
| free(e); |
| @@ -712,14 +712,14 @@ struct expr *expr_transform(struct expr |
| break; |
| case E_EQUAL: |
| case E_UNEQUAL: |
| - // !a='x' -> a!='x' |
| + /* !a='x' -> a!='x' */ |
| tmp = e->left.expr; |
| free(e); |
| e = tmp; |
| e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; |
| break; |
| case E_OR: |
| - // !(a || b) -> !a && !b |
| + /* !(a || b) -> !a && !b */ |
| tmp = e->left.expr; |
| e->type = E_AND; |
| e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); |
| @@ -728,7 +728,7 @@ struct expr *expr_transform(struct expr |
| e = expr_transform(e); |
| break; |
| case E_AND: |
| - // !(a && b) -> !a || !b |
| + /* !(a && b) -> !a || !b */ |
| tmp = e->left.expr; |
| e->type = E_OR; |
| e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); |
| @@ -738,7 +738,7 @@ struct expr *expr_transform(struct expr |
| break; |
| case E_SYMBOL: |
| if (e->left.expr->left.sym == &symbol_yes) { |
| - // !'y' -> 'n' |
| + /* !'y' -> 'n' */ |
| tmp = e->left.expr; |
| free(e); |
| e = tmp; |
| @@ -747,7 +747,7 @@ struct expr *expr_transform(struct expr |
| break; |
| } |
| if (e->left.expr->left.sym == &symbol_mod) { |
| - // !'m' -> 'm' |
| + /* !'m' -> 'm' */ |
| tmp = e->left.expr; |
| free(e); |
| e = tmp; |
| @@ -756,7 +756,7 @@ struct expr *expr_transform(struct expr |
| break; |
| } |
| if (e->left.expr->left.sym == &symbol_no) { |
| - // !'n' -> 'y' |
| + /* !'n' -> 'y' */ |
| tmp = e->left.expr; |
| free(e); |
| e = tmp; |
| diff -rduNp config.new.oorig/expr.h config.new/expr.h |
| --- config.new.oorig/expr.h 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/expr.h 2008-04-07 11:06:30.000000000 +0200 |
| @@ -65,7 +65,7 @@ enum symbol_type { |
| |
| enum { |
| S_DEF_USER, /* main user value */ |
| - S_DEF_AUTO, |
| + S_DEF_AUTO |
| }; |
| |
| struct symbol { |
| diff -rduNp config.new.oorig/gconf.c config.new/gconf.c |
| --- config.new.oorig/gconf.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/gconf.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -268,8 +268,8 @@ void init_main_window(const gchar * glad |
| /*"style", PANGO_STYLE_OBLIQUE, */ |
| NULL); |
| |
| - sprintf(title, _("Linux Kernel v%s Configuration"), |
| - getenv("KERNELVERSION")); |
| + sprintf(title, _("Buildroot v%s Configuration"), |
| + getenv("BR2_VERSION")); |
| gtk_window_set_title(GTK_WINDOW(main_wnd), title); |
| |
| gtk_widget_show(main_wnd); |
| diff -rduNp config.new.oorig/gconf.glade config.new/gconf.glade |
| --- config.new.oorig/gconf.glade 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/gconf.glade 2008-04-07 11:06:30.000000000 +0200 |
| @@ -5,7 +5,7 @@ |
| |
| <widget class="GtkWindow" id="window1"> |
| <property name="visible">True</property> |
| - <property name="title" translatable="yes">Gtk Kernel Configurator</property> |
| + <property name="title" translatable="yes">Gtk Buildroot Configurator</property> |
| <property name="type">GTK_WINDOW_TOPLEVEL</property> |
| <property name="window_position">GTK_WIN_POS_NONE</property> |
| <property name="modal">False</property> |
| diff -rduNp config.new.oorig/kconfig-to-buildroot2.patch config.new/kconfig-to-buildroot2.patch |
| --- config.new.oorig/kconfig-to-buildroot2.patch 1970-01-01 01:00:00.000000000 +0100 |
| +++ config.new/kconfig-to-buildroot2.patch 2008-04-07 11:12:30.000000000 +0200 |
| @@ -0,0 +1,562 @@ |
| +diff -rduNp config.new.oorig/Makefile config.new/Makefile |
| +--- config.new.oorig/Makefile 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/Makefile 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -123,6 +123,9 @@ hostprogs-y := conf qconf gconf kxgettex |
| + ifeq ($(MAKECMDGOALS),menuconfig) |
| + hostprogs-y += mconf |
| + endif |
| ++ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf) |
| ++ hostprogs-y += mconf |
| ++endif |
| + |
| + ifeq ($(MAKECMDGOALS),xconfig) |
| + qconf-target := 1 |
| +@@ -181,8 +184,8 @@ $(obj)/.tmp_qtcheck: |
| + done; \ |
| + if [ -z "$$dir" ]; then \ |
| + echo "*"; \ |
| +- echo "* Unable to find the QT3 installation. Please make sure that"; \ |
| +- echo "* the QT3 development package is correctly installed and"; \ |
| ++ echo "* Unable to find the QT installation. Please make sure that"; \ |
| ++ echo "* the QT development package is correctly installed and"; \ |
| + echo "* either install pkg-config or set the QTDIR environment"; \ |
| + echo "* variable to the correct location."; \ |
| + echo "*"; \ |
| +diff -rduNp config.new.oorig/conf.c config.new/conf.c |
| +--- config.new.oorig/conf.c 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/conf.c 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -545,7 +545,7 @@ int main(int ac, char **av) |
| + exit(1); |
| + } |
| + conf_parse(name); |
| +- //zconfdump(stdout); |
| ++ /*zconfdump(stdout);*/ |
| + switch (input_mode) { |
| + case set_default: |
| + if (!defconfig_file) |
| +@@ -560,11 +560,11 @@ int main(int ac, char **av) |
| + case ask_silent: |
| + if (stat(".config", &tmpstat)) { |
| + printf(_("***\n" |
| +- "*** You have not yet configured your kernel!\n" |
| +- "*** (missing kernel .config file)\n" |
| ++ "*** You have not yet configured Buildroot!\n" |
| ++ "*** (missing .config file)\n" |
| + "***\n" |
| + "*** Please run some configurator (e.g. \"make oldconfig\" or\n" |
| +- "*** \"make menuconfig\" or \"make xconfig\").\n" |
| ++ "*** \"make menuconfig\" or \"make config\").\n" |
| + "***\n")); |
| + exit(1); |
| + } |
| +@@ -607,7 +607,7 @@ int main(int ac, char **av) |
| + } else if (conf_get_changed()) { |
| + name = getenv("KCONFIG_NOSILENTUPDATE"); |
| + if (name && *name) { |
| +- fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n")); |
| ++ fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n")); |
| + return 1; |
| + } |
| + } else |
| +@@ -618,12 +618,12 @@ int main(int ac, char **av) |
| + check_conf(&rootmenu); |
| + } while (conf_cnt); |
| + if (conf_write(NULL)) { |
| +- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| ++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); |
| + return 1; |
| + } |
| + skip_check: |
| +- if (input_mode == ask_silent && conf_write_autoconf()) { |
| +- fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| ++ if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) { |
| ++ fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); |
| + return 1; |
| + } |
| + |
| +diff -rduNp config.new.oorig/confdata.c config.new/confdata.c |
| +--- config.new.oorig/confdata.c 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/confdata.c 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -11,6 +11,7 @@ |
| + #include <string.h> |
| + #include <time.h> |
| + #include <unistd.h> |
| ++#include <libgen.h> |
| + |
| + #define LKC_DIRECT_LINK |
| + #include "lkc.h" |
| +@@ -21,7 +22,7 @@ static void conf_warning(const char *fmt |
| + static const char *conf_filename; |
| + static int conf_lineno, conf_warnings, conf_unsaved; |
| + |
| +-const char conf_defname[] = "arch/$ARCH/defconfig"; |
| ++const char conf_defname[] = ".defconfig"; |
| + |
| + static void conf_warning(const char *fmt, ...) |
| + { |
| +@@ -36,7 +37,7 @@ static void conf_warning(const char *fmt |
| + |
| + const char *conf_get_configname(void) |
| + { |
| +- char *name = getenv("KCONFIG_CONFIG"); |
| ++ char *name = getenv("BUILDROOT_CONFIG"); |
| + |
| + return name ? name : ".config"; |
| + } |
| +@@ -212,22 +213,22 @@ load: |
| + sym = NULL; |
| + switch (line[0]) { |
| + case '#': |
| +- if (memcmp(line + 2, "CONFIG_", 7)) |
| ++ if (line[1]!=' ') |
| + continue; |
| +- p = strchr(line + 9, ' '); |
| ++ p = strchr(line + 2, ' '); |
| + if (!p) |
| + continue; |
| + *p++ = 0; |
| + if (strncmp(p, "is not set", 10)) |
| + continue; |
| + if (def == S_DEF_USER) { |
| +- sym = sym_find(line + 9); |
| ++ sym = sym_find(line + 2); |
| + if (!sym) { |
| +- conf_warning("trying to assign nonexistent symbol %s", line + 9); |
| ++ conf_warning("trying to assign nonexistent symbol %s", line + 2); |
| + break; |
| + } |
| + } else { |
| +- sym = sym_lookup(line + 9, 0); |
| ++ sym = sym_lookup(line + 2, 0); |
| + if (sym->type == S_UNKNOWN) |
| + sym->type = S_BOOLEAN; |
| + } |
| +@@ -245,12 +246,8 @@ load: |
| + ; |
| + } |
| + break; |
| +- case 'C': |
| +- if (memcmp(line, "CONFIG_", 7)) { |
| +- conf_warning("unexpected data"); |
| +- continue; |
| +- } |
| +- p = strchr(line + 7, '='); |
| ++ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': |
| ++ p = strchr(line, '='); |
| + if (!p) |
| + continue; |
| + *p++ = 0; |
| +@@ -261,13 +258,13 @@ load: |
| + *p2 = 0; |
| + } |
| + if (def == S_DEF_USER) { |
| +- sym = sym_find(line + 7); |
| ++ sym = sym_find(line); |
| + if (!sym) { |
| +- conf_warning("trying to assign nonexistent symbol %s", line + 7); |
| ++ conf_warning("trying to assign nonexistent symbol %s", line); |
| + break; |
| + } |
| + } else { |
| +- sym = sym_lookup(line + 7, 0); |
| ++ sym = sym_lookup(line, 0); |
| + if (sym->type == S_UNKNOWN) |
| + sym->type = S_OTHER; |
| + } |
| +@@ -440,7 +437,7 @@ int conf_write(const char *name) |
| + if (!out) |
| + return 1; |
| + |
| +- sym = sym_lookup("KERNELVERSION", 0); |
| ++ sym = sym_lookup("BR2_VERSION", 0); |
| + sym_calc_value(sym); |
| + time(&now); |
| + env = getenv("KCONFIG_NOTIMESTAMP"); |
| +@@ -449,10 +446,8 @@ int conf_write(const char *name) |
| + |
| + fprintf(out, _("#\n" |
| + "# Automatically generated make config: don't edit\n" |
| +- "# Linux kernel version: %s\n" |
| + "%s%s" |
| + "#\n"), |
| +- sym_get_string_value(sym), |
| + use_timestamp ? "# " : "", |
| + use_timestamp ? ctime(&now) : ""); |
| + |
| +@@ -486,19 +481,19 @@ int conf_write(const char *name) |
| + case S_TRISTATE: |
| + switch (sym_get_tristate_value(sym)) { |
| + case no: |
| +- fprintf(out, "# CONFIG_%s is not set\n", sym->name); |
| ++ fprintf(out, "# %s is not set\n", sym->name); |
| + break; |
| + case mod: |
| +- fprintf(out, "CONFIG_%s=m\n", sym->name); |
| ++ fprintf(out, "%s=m\n", sym->name); |
| + break; |
| + case yes: |
| +- fprintf(out, "CONFIG_%s=y\n", sym->name); |
| ++ fprintf(out, "%s=y\n", sym->name); |
| + break; |
| + } |
| + break; |
| + case S_STRING: |
| + str = sym_get_string_value(sym); |
| +- fprintf(out, "CONFIG_%s=\"", sym->name); |
| ++ fprintf(out, "%s=\"", sym->name); |
| + while (1) { |
| + l = strcspn(str, "\"\\"); |
| + if (l) { |
| +@@ -514,12 +509,12 @@ int conf_write(const char *name) |
| + case S_HEX: |
| + str = sym_get_string_value(sym); |
| + if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { |
| +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| ++ fprintf(out, "%s=%s\n", sym->name, str); |
| + break; |
| + } |
| + case S_INT: |
| + str = sym_get_string_value(sym); |
| +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| ++ fprintf(out, "%s=%s\n", sym->name, str); |
| + break; |
| + } |
| + } |
| +@@ -559,7 +554,7 @@ int conf_write(const char *name) |
| + |
| + int conf_split_config(void) |
| + { |
| +- char *name, path[128]; |
| ++ char *name, path[128], *opwd, *dir, *_name; |
| + char *s, *d, c; |
| + struct symbol *sym; |
| + struct stat sb; |
| +@@ -570,8 +565,20 @@ int conf_split_config(void) |
| + name = "include/config/auto.conf"; |
| + conf_read_simple(name, S_DEF_AUTO); |
| + |
| +- if (chdir("include/config")) |
| ++ opwd = malloc(256); |
| ++ _name = strdup(name); |
| ++ if (opwd == NULL || _name == NULL) |
| + return 1; |
| ++ opwd = getcwd(opwd, 256); |
| ++ dir = dirname(_name); |
| ++ if (dir == NULL) { |
| ++ res = 1; |
| ++ goto err; |
| ++ } |
| ++ if (chdir(dir)) { |
| ++ res = 1; |
| ++ goto err; |
| ++ } |
| + |
| + res = 0; |
| + for_all_symbols(i, sym) { |
| +@@ -664,9 +671,11 @@ int conf_split_config(void) |
| + close(fd); |
| + } |
| + out: |
| +- if (chdir("../..")) |
| +- return 1; |
| +- |
| ++ if (chdir(opwd)) |
| ++ res = 1; |
| ++err: |
| ++ free(opwd); |
| ++ free(_name); |
| + return res; |
| + } |
| + |
| +@@ -681,7 +690,7 @@ int conf_write_autoconf(void) |
| + |
| + sym_clear_all_valid(); |
| + |
| +- file_write_dep("include/config/auto.conf.cmd"); |
| ++ file_write_dep(".config.cmd"); |
| + |
| + if (conf_split_config()) |
| + return 1; |
| +@@ -696,22 +705,19 @@ int conf_write_autoconf(void) |
| + return 1; |
| + } |
| + |
| +- sym = sym_lookup("KERNELVERSION", 0); |
| ++ sym = sym_lookup("BR2_VERSION", 0); |
| + sym_calc_value(sym); |
| + time(&now); |
| + fprintf(out, "#\n" |
| + "# Automatically generated make config: don't edit\n" |
| +- "# Linux kernel version: %s\n" |
| + "# %s" |
| + "#\n", |
| +- sym_get_string_value(sym), ctime(&now)); |
| ++ ctime(&now)); |
| + fprintf(out_h, "/*\n" |
| + " * Automatically generated C config: don't edit\n" |
| +- " * Linux kernel version: %s\n" |
| + " * %s" |
| +- " */\n" |
| +- "#define AUTOCONF_INCLUDED\n", |
| +- sym_get_string_value(sym), ctime(&now)); |
| ++ " */\n", |
| ++ ctime(&now)); |
| + |
| + for_all_symbols(i, sym) { |
| + sym_calc_value(sym); |
| +@@ -724,19 +730,19 @@ int conf_write_autoconf(void) |
| + case no: |
| + break; |
| + case mod: |
| +- fprintf(out, "CONFIG_%s=m\n", sym->name); |
| +- fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name); |
| ++ fprintf(out, "%s=m\n", sym->name); |
| ++ fprintf(out_h, "#define %s_MODULE 1\n", sym->name); |
| + break; |
| + case yes: |
| +- fprintf(out, "CONFIG_%s=y\n", sym->name); |
| +- fprintf(out_h, "#define CONFIG_%s 1\n", sym->name); |
| ++ fprintf(out, "%s=y\n", sym->name); |
| ++ fprintf(out_h, "#define %s 1\n", sym->name); |
| + break; |
| + } |
| + break; |
| + case S_STRING: |
| + str = sym_get_string_value(sym); |
| +- fprintf(out, "CONFIG_%s=\"", sym->name); |
| +- fprintf(out_h, "#define CONFIG_%s \"", sym->name); |
| ++ fprintf(out, "%s=\"", sym->name); |
| ++ fprintf(out_h, "#define %s \"", sym->name); |
| + while (1) { |
| + l = strcspn(str, "\"\\"); |
| + if (l) { |
| +@@ -756,14 +762,14 @@ int conf_write_autoconf(void) |
| + case S_HEX: |
| + str = sym_get_string_value(sym); |
| + if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { |
| +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| +- fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str); |
| ++ fprintf(out, "%s=%s\n", sym->name, str); |
| ++ fprintf(out_h, "#define %s 0x%s\n", sym->name, str); |
| + break; |
| + } |
| + case S_INT: |
| + str = sym_get_string_value(sym); |
| +- fprintf(out, "CONFIG_%s=%s\n", sym->name, str); |
| +- fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str); |
| ++ fprintf(out, "%s=%s\n", sym->name, str); |
| ++ fprintf(out_h, "#define %s %s\n", sym->name, str); |
| + break; |
| + default: |
| + break; |
| +diff -rduNp config.new.oorig/expr.c config.new/expr.c |
| +--- config.new.oorig/expr.c 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/expr.c 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -331,7 +331,7 @@ struct expr *expr_trans_bool(struct expr |
| + e->right.expr = expr_trans_bool(e->right.expr); |
| + break; |
| + case E_UNEQUAL: |
| +- // FOO!=n -> FOO |
| ++ /* FOO!=n -> FOO */ |
| + if (e->left.sym->type == S_TRISTATE) { |
| + if (e->right.sym == &symbol_no) { |
| + e->type = E_SYMBOL; |
| +@@ -380,19 +380,19 @@ struct expr *expr_join_or(struct expr *e |
| + if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || |
| + (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { |
| +- // (a='y') || (a='m') -> (a!='n') |
| ++ /* (a='y') || (a='m') -> (a!='n') */ |
| + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no); |
| + } |
| + if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || |
| + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { |
| +- // (a='y') || (a='n') -> (a!='m') |
| ++ /* (a='y') || (a='n') -> (a!='m') */ |
| + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod); |
| + } |
| + if (e1->type == E_EQUAL && e2->type == E_EQUAL && |
| + ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || |
| + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { |
| +- // (a='m') || (a='n') -> (a!='y') |
| ++ /* (a='m') || (a='n') -> (a!='y') */ |
| + return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes); |
| + } |
| + } |
| +@@ -443,29 +443,29 @@ struct expr *expr_join_and(struct expr * |
| + |
| + if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || |
| + (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) |
| +- // (a) && (a='y') -> (a='y') |
| ++ /* (a) && (a='y') -> (a='y') */ |
| + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| + |
| + if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || |
| + (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) |
| +- // (a) && (a!='n') -> (a) |
| ++ /* (a) && (a!='n') -> (a) */ |
| + return expr_alloc_symbol(sym1); |
| + |
| + if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || |
| + (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) |
| +- // (a) && (a!='m') -> (a='y') |
| ++ /* (a) && (a!='m') -> (a='y') */ |
| + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| + |
| + if (sym1->type == S_TRISTATE) { |
| + if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { |
| +- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' |
| ++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ |
| + sym2 = e1->right.sym; |
| + if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) |
| + return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) |
| + : expr_alloc_symbol(&symbol_no); |
| + } |
| + if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { |
| +- // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' |
| ++ /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ |
| + sym2 = e2->right.sym; |
| + if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) |
| + return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) |
| +@@ -474,19 +474,19 @@ struct expr *expr_join_and(struct expr * |
| + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || |
| + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) |
| +- // (a!='y') && (a!='n') -> (a='m') |
| ++ /* (a!='y') && (a!='n') -> (a='m') */ |
| + return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod); |
| + |
| + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| + ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || |
| + (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) |
| +- // (a!='y') && (a!='m') -> (a='n') |
| ++ /* (a!='y') && (a!='m') -> (a='n') */ |
| + return expr_alloc_comp(E_EQUAL, sym1, &symbol_no); |
| + |
| + if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && |
| + ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || |
| + (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) |
| +- // (a!='m') && (a!='n') -> (a='m') |
| ++ /* (a!='m') && (a!='n') -> (a='m') */ |
| + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); |
| + |
| + if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || |
| +@@ -579,7 +579,7 @@ static void expr_eliminate_dups2(enum ex |
| + switch (e1->type) { |
| + case E_OR: |
| + expr_eliminate_dups2(e1->type, &e1, &e1); |
| +- // (FOO || BAR) && (!FOO && !BAR) -> n |
| ++ /* (FOO || BAR) && (!FOO && !BAR) -> n */ |
| + tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); |
| + tmp2 = expr_copy(e2); |
| + tmp = expr_extract_eq_and(&tmp1, &tmp2); |
| +@@ -594,7 +594,7 @@ static void expr_eliminate_dups2(enum ex |
| + break; |
| + case E_AND: |
| + expr_eliminate_dups2(e1->type, &e1, &e1); |
| +- // (FOO && BAR) || (!FOO || !BAR) -> y |
| ++ /* (FOO && BAR) || (!FOO || !BAR) -> y */ |
| + tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); |
| + tmp2 = expr_copy(e2); |
| + tmp = expr_extract_eq_or(&tmp1, &tmp2); |
| +@@ -703,7 +703,7 @@ struct expr *expr_transform(struct expr |
| + case E_NOT: |
| + switch (e->left.expr->type) { |
| + case E_NOT: |
| +- // !!a -> a |
| ++ /* !!a -> a */ |
| + tmp = e->left.expr->left.expr; |
| + free(e->left.expr); |
| + free(e); |
| +@@ -712,14 +712,14 @@ struct expr *expr_transform(struct expr |
| + break; |
| + case E_EQUAL: |
| + case E_UNEQUAL: |
| +- // !a='x' -> a!='x' |
| ++ /* !a='x' -> a!='x' */ |
| + tmp = e->left.expr; |
| + free(e); |
| + e = tmp; |
| + e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; |
| + break; |
| + case E_OR: |
| +- // !(a || b) -> !a && !b |
| ++ /* !(a || b) -> !a && !b */ |
| + tmp = e->left.expr; |
| + e->type = E_AND; |
| + e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); |
| +@@ -728,7 +728,7 @@ struct expr *expr_transform(struct expr |
| + e = expr_transform(e); |
| + break; |
| + case E_AND: |
| +- // !(a && b) -> !a || !b |
| ++ /* !(a && b) -> !a || !b */ |
| + tmp = e->left.expr; |
| + e->type = E_OR; |
| + e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); |
| +@@ -738,7 +738,7 @@ struct expr *expr_transform(struct expr |
| + break; |
| + case E_SYMBOL: |
| + if (e->left.expr->left.sym == &symbol_yes) { |
| +- // !'y' -> 'n' |
| ++ /* !'y' -> 'n' */ |
| + tmp = e->left.expr; |
| + free(e); |
| + e = tmp; |
| +@@ -747,7 +747,7 @@ struct expr *expr_transform(struct expr |
| + break; |
| + } |
| + if (e->left.expr->left.sym == &symbol_mod) { |
| +- // !'m' -> 'm' |
| ++ /* !'m' -> 'm' */ |
| + tmp = e->left.expr; |
| + free(e); |
| + e = tmp; |
| +@@ -756,7 +756,7 @@ struct expr *expr_transform(struct expr |
| + break; |
| + } |
| + if (e->left.expr->left.sym == &symbol_no) { |
| +- // !'n' -> 'y' |
| ++ /* !'n' -> 'y' */ |
| + tmp = e->left.expr; |
| + free(e); |
| + e = tmp; |
| +diff -rduNp config.new.oorig/expr.h config.new/expr.h |
| +--- config.new.oorig/expr.h 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/expr.h 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -65,7 +65,7 @@ enum symbol_type { |
| + |
| + enum { |
| + S_DEF_USER, /* main user value */ |
| +- S_DEF_AUTO, |
| ++ S_DEF_AUTO |
| + }; |
| + |
| + struct symbol { |
| +diff -rduNp config.new.oorig/gconf.c config.new/gconf.c |
| +--- config.new.oorig/gconf.c 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/gconf.c 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -268,8 +268,8 @@ void init_main_window(const gchar * glad |
| + /*"style", PANGO_STYLE_OBLIQUE, */ |
| + NULL); |
| + |
| +- sprintf(title, _("Linux Kernel v%s Configuration"), |
| +- getenv("KERNELVERSION")); |
| ++ sprintf(title, _("Buildroot v%s Configuration"), |
| ++ getenv("BR2_VERSION")); |
| + gtk_window_set_title(GTK_WINDOW(main_wnd), title); |
| + |
| + gtk_widget_show(main_wnd); |
| +diff -rduNp config.new.oorig/gconf.glade config.new/gconf.glade |
| +--- config.new.oorig/gconf.glade 2008-04-07 11:03:28.000000000 +0200 |
| ++++ config.new/gconf.glade 2008-04-07 11:06:30.000000000 +0200 |
| +@@ -5,7 +5,7 @@ |
| + |
| + <widget class="GtkWindow" id="window1"> |
| + <property name="visible">True</property> |
| +- <property name="title" translatable="yes">Gtk Kernel Configurator</property> |
| ++ <property name="title" translatable="yes">Gtk Buildroot Configurator</property> |
| + <property name="type">GTK_WINDOW_TOPLEVEL</property> |
| + <property name="window_position">GTK_WIN_POS_NONE</property> |
| + <property name="modal">False</property> |
| diff -rduNp config.new.oorig/mconf.c config.new/mconf.c |
| --- config.new.oorig/mconf.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/mconf.c 2008-04-07 11:09:01.000000000 +0200 |
| @@ -29,10 +29,9 @@ |
| static const char mconf_readme[] = N_( |
| "Overview\n" |
| "--------\n" |
| -"Some kernel features may be built directly into the kernel.\n" |
| -"Some may be made into loadable runtime modules. Some features\n" |
| +"Some features may be built directly into Buildroot. Some features\n" |
| "may be completely removed altogether. There are also certain\n" |
| -"kernel parameters which are not really features, but must be\n" |
| +"parameters which are not really features, but must be\n" |
| "entered in as decimal or hexadecimal numbers or possibly text.\n" |
| "\n" |
| "Menu items beginning with following braces represent features that\n" |
| @@ -119,7 +118,7 @@ static const char mconf_readme[] = N_( |
| "-----------------------------\n" |
| "Menuconfig supports the use of alternate configuration files for\n" |
| "those who, for various reasons, find it necessary to switch\n" |
| -"between different kernel configurations.\n" |
| +"between different configurations.\n" |
| "\n" |
| "At the end of the main menu you will find two options. One is\n" |
| "for saving the current configuration to a file of your choosing.\n" |
| @@ -152,7 +151,7 @@ static const char mconf_readme[] = N_( |
| "\n" |
| "Optional personality available\n" |
| "------------------------------\n" |
| -"If you prefer to have all of the kernel options listed in a single\n" |
| +"If you prefer to have all of the options listed in a single\n" |
| "menu, rather than the default multimenu hierarchy, run the menuconfig\n" |
| "with MENUCONFIG_MODE environment variable set to single_menu. Example:\n" |
| "\n" |
| @@ -182,9 +181,9 @@ menu_instructions[] = N_( |
| "Arrow keys navigate the menu. " |
| "<Enter> selects submenus --->. " |
| "Highlighted letters are hotkeys. " |
| - "Pressing <Y> includes, <N> excludes, <M> modularizes features. " |
| + "Pressing <Y> selectes a feature, while <N> will exclude a feature. " |
| "Press <Esc><Esc> to exit, <?> for Help, </> for Search. " |
| - "Legend: [*] built-in [ ] excluded <M> module < > module capable"), |
| + "Legend: [*] feature is selected [ ] feature is excluded"), |
| radiolist_instructions[] = N_( |
| "Use the arrow keys to navigate this window or " |
| "press the hotkey of the item you wish to select " |
| @@ -204,18 +203,18 @@ setmod_text[] = N_( |
| "This feature depends on another which has been configured as a module.\n" |
| "As a result, this feature will be built as a module."), |
| nohelp_text[] = N_( |
| - "There is no help available for this kernel option.\n"), |
| + "There is no help available for this option.\n"), |
| load_config_text[] = N_( |
| "Enter the name of the configuration file you wish to load. " |
| "Accept the name shown to restore the configuration you " |
| "last retrieved. Leave blank to abort."), |
| load_config_help[] = N_( |
| "\n" |
| - "For various reasons, one may wish to keep several different kernel\n" |
| + "For various reasons, one may wish to keep several different Buildroot\n" |
| "configurations available on a single machine.\n" |
| "\n" |
| "If you have saved a previous configuration in a file other than the\n" |
| - "kernel's default, entering the name of the file here will allow you\n" |
| + "Buildroot's default, entering the name of the file here will allow you\n" |
| "to modify that configuration.\n" |
| "\n" |
| "If you are uncertain, then you have probably never used alternate\n" |
| @@ -225,7 +224,7 @@ save_config_text[] = N_( |
| "as an alternate. Leave blank to abort."), |
| save_config_help[] = N_( |
| "\n" |
| - "For various reasons, one may wish to keep different kernel\n" |
| + "For various reasons, one may wish to keep different Buildroot\n" |
| "configurations available on a single machine.\n" |
| "\n" |
| "Entering a file name here will allow you to later retrieve, modify\n" |
| @@ -405,10 +404,10 @@ static void set_config_filename(const ch |
| int size; |
| struct symbol *sym; |
| |
| - sym = sym_lookup("KERNELVERSION", 0); |
| + sym = sym_lookup("BR2_VERSION", 0); |
| sym_calc_value(sym); |
| size = snprintf(menu_backtitle, sizeof(menu_backtitle), |
| - _("%s - Linux Kernel v%s Configuration"), |
| + _("%s - buildroot v%s Configuration"), |
| config_filename, sym_get_string_value(sym)); |
| if (size >= sizeof(menu_backtitle)) |
| menu_backtitle[sizeof(menu_backtitle)-1] = '\0'; |
| @@ -935,7 +934,7 @@ int main(int ac, char **av) |
| if (conf_get_changed()) |
| res = dialog_yesno(NULL, |
| _("Do you wish to save your " |
| - "new kernel configuration?\n" |
| + "new Buildroot configuration?\n" |
| "<ESC><ESC> to continue."), |
| 6, 60); |
| else |
| @@ -947,22 +946,22 @@ int main(int ac, char **av) |
| case 0: |
| if (conf_write(filename)) { |
| fprintf(stderr, _("\n\n" |
| - "Error during writing of the kernel configuration.\n" |
| - "Your kernel configuration changes were NOT saved." |
| + "Error during writing of the Buildroot configuration.\n" |
| + "Your Buildroot configuration changes were NOT saved." |
| "\n\n")); |
| return 1; |
| } |
| case -1: |
| printf(_("\n\n" |
| - "*** End of Linux kernel configuration.\n" |
| - "*** Execute 'make' to build the kernel or try 'make help'." |
| + "*** End of Buildroot configuration.\n" |
| + "*** Execute 'make' to build Buildroot or try 'make help'." |
| "\n\n")); |
| break; |
| default: |
| fprintf(stderr, _("\n\n" |
| - "Your kernel configuration changes were NOT saved." |
| + "Your Buildroot configuration changes were NOT saved." |
| "\n\n")); |
| } |
| |
| - return 0; |
| + return conf_write_autoconf(); |
| } |
| diff -rduNp config.new.oorig/symbol.c config.new/symbol.c |
| --- config.new.oorig/symbol.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/symbol.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -61,10 +61,10 @@ void sym_init(void) |
| if (p) |
| sym_add_default(sym, p); |
| |
| - sym = sym_lookup("KERNELVERSION", 0); |
| + sym = sym_lookup("BR2_VERSION", 0); |
| sym->type = S_STRING; |
| sym->flags |= SYMBOL_AUTO; |
| - p = getenv("KERNELVERSION"); |
| + p = getenv("BR2_VERSION"); |
| if (p) |
| sym_add_default(sym, p); |
| |
| diff -rduNp config.new.oorig/util.c config.new/util.c |
| --- config.new.oorig/util.c 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/util.c 2008-04-07 11:06:30.000000000 +0200 |
| @@ -26,6 +26,109 @@ struct file *file_lookup(const char *nam |
| return file; |
| } |
| |
| +static char* br2_symbol_printer(const char * const in) |
| +{ |
| + ssize_t i, j, len = strlen(in); |
| + char *ret; |
| + if (len < 1) |
| + return NULL; |
| + ret = malloc(len); |
| + if (!ret) { |
| + printf("Out of memory!"); |
| + exit(1); |
| + } |
| + memset(ret, 0, len); |
| + i = j = 0; |
| + if (strncmp("BR2_", in, 4) == 0) |
| + i += 4; |
| + if (strncmp("PACKAGE_", in + i, 8) == 0) |
| + i += 8; |
| + else if (strncmp("TARGET_", in + i, 7) == 0) |
| + i += 7; |
| + while (i <= len) |
| + ret[j++] = tolower(in[i++]); |
| + return ret; |
| +} |
| + |
| +/* write dependencies of the infividual config-symbols */ |
| +static int write_make_deps(const char *name) |
| +{ |
| + struct menu *menu; |
| + struct symbol *sym; |
| + struct property *prop, *p; |
| + unsigned done; |
| + const char * const name_tmp = "..make.deps.tmp"; |
| + FILE *out; |
| + if (!name) |
| + name = ".auto.deps"; |
| + out = fopen(name_tmp, "w"); |
| + if (!out) |
| + return 1; |
| + fprintf(out, "# ATTENTION! This does not handle 'depends', just 'select'! \n" |
| + "# See package/config/util.c write_make_deps()\n#\n"); |
| + menu = &rootmenu;//rootmenu.list; |
| + while (menu) { |
| + sym = menu->sym; |
| + if (!sym) { |
| + if (!menu_is_visible(menu)) |
| + goto next; |
| + } else if (!(sym->flags & SYMBOL_CHOICE)) { |
| + sym_calc_value(sym); |
| + if (sym->type == S_BOOLEAN |
| + && sym_get_tristate_value(sym) != no) { |
| + done = 0; |
| + for_all_prompts(sym, prop) { |
| + struct expr *e; |
| +//printf("\nname=%s\n", sym->name); |
| + for_all_properties(sym, p, P_SELECT) { |
| + e = p->expr; |
| + if (e && e->left.sym->name) { |
| + if (!done) { |
| + fprintf(out, "%s: $(BASE_TARGETS)", br2_symbol_printer(sym->name)); |
| + done = 1; |
| + } |
| +//printf("SELECTS %s\n",e->left.sym->name); |
| + fprintf(out, " %s",br2_symbol_printer(e->left.sym->name)); |
| + } |
| + } |
| + if (done) |
| + fprintf(out, "\n"); |
| +#if 0 |
| + e = sym->rev_dep.expr; |
| + if (e && e->type == E_SYMBOL |
| + && e->left.sym->name) { |
| + fprintf(out, "%s: %s", br2_symbol_printer(e->left.sym->name), |
| + br2_symbol_printer(sym->name)); |
| +printf("%s is Selected BY: %s", sym->name, e->left.sym->name); |
| + } |
| +#endif |
| + } |
| + } |
| + } |
| +next: |
| + if (menu->list) { |
| + menu = menu->list; |
| + continue; |
| + } |
| + if (menu->next) |
| + menu = menu->next; |
| + else while ((menu = menu->parent)) { |
| + if (menu->next) { |
| + menu = menu->next; |
| + break; |
| + } |
| + } |
| + } |
| + fclose(out); |
| + rename(name_tmp, name); |
| + printf(_("#\n" |
| + "# make dependencies written to %s\n" |
| + "# ATTENTION buildroot devels!\n" |
| + "# See top of this file before playing with this auto-preprequisites!\n" |
| + "#\n"), name); |
| + return 0; |
| +} |
| + |
| /* write a dependency file as used by kbuild to track dependencies */ |
| int file_write_dep(const char *name) |
| { |
| @@ -44,12 +147,13 @@ int file_write_dep(const char *name) |
| else |
| fprintf(out, "\t%s\n", file->name); |
| } |
| - fprintf(out, "\ninclude/config/auto.conf: \\\n" |
| + fprintf(out, "\n$(BR2_DEPENDS_DIR)/config/auto.conf: \\\n" |
| "\t$(deps_config)\n\n" |
| "$(deps_config): ;\n"); |
| fclose(out); |
| rename("..config.tmp", name); |
| - return 0; |
| + |
| + return write_make_deps(NULL); |
| } |
| |
| |
| diff -rduNp config.new.oorig/zconf.tab.c_shipped config.new/zconf.tab.c_shipped |
| --- config.new.oorig/zconf.tab.c_shipped 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/zconf.tab.c_shipped 2008-04-07 11:06:30.000000000 +0200 |
| @@ -2248,7 +2248,7 @@ void conf_parse(const char *name) |
| modules_sym = sym_lookup(NULL, 0); |
| modules_sym->type = S_BOOLEAN; |
| modules_sym->flags |= SYMBOL_AUTO; |
| - rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); |
| + rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); |
| |
| #if YYDEBUG |
| if (getenv("ZCONF_DEBUG")) |
| diff -rduNp config.new.oorig/zconf.y config.new/zconf.y |
| --- config.new.oorig/zconf.y 2008-04-07 11:03:28.000000000 +0200 |
| +++ config.new/zconf.y 2008-04-07 11:06:30.000000000 +0200 |
| @@ -473,7 +473,7 @@ void conf_parse(const char *name) |
| modules_sym = sym_lookup(NULL, 0); |
| modules_sym->type = S_BOOLEAN; |
| modules_sym->flags |= SYMBOL_AUTO; |
| - rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); |
| + rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); |
| |
| #if YYDEBUG |
| if (getenv("ZCONF_DEBUG")) |