blob: a3a35ec7f6bc83a20f6c7837aec8479cfdc56680 [file] [log] [blame]
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"))