22 struct symlist *gsymlist;
28 int main(int argc, char **argv) {
32 for (i = 0; i < argc; i++) {
33 if (!strcmp(argv[i], "-v"))
35 else if (file == NULL)
40 Eprintf("No input file specified\n");
44 Eprintf("No output folder specified\n");
48 setlocale(LC_ALL, "");
49 bindtextdomain(PACKAGE, LOCALEDIR);
53 //sym_clear_all_valid();
55 gsymlist = symlist_create();
60 char *rules_file, *symbol_map_file;
61 asprintf(&rules_file, "%s/%s", argv[2], DEFAULT_RULES_FILE);
62 asprintf(&symbol_map_file, "%s/%s", argv[2], DEFAULT_SYMBOL_MAP_FILE);
63 fprint_rules(gsymlist, rules_file);
64 fprint_symbol_map(gsymlist, symbol_map_file);
68 void build_symlist() {
71 for_all_symbols(i, sym) {
72 if (sym->type == S_BOOLEAN || sym->type == S_TRISTATE) {
73 if (sym->name != NULL) {
74 symlist_add(gsymlist, sym->name);
76 sym->name = malloc((9 + 7) * sizeof(char));
77 sprintf(sym->name, "NONAMEGEN%d", noname_num++);
78 symlist_add(gsymlist, sym->name);
87 struct symlist_el *el;
88 for_all_symbols(i, sym) {
89 if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE)
90 && strstr(sym->name, "NONAMEGEN") == NULL) {
91 el = symlist_find(gsymlist, sym->name);
92 Iprintf("working: %s(%d)\n", sym->name, el->id);
94 if (sym->dir_dep.expr != NULL) {
95 if (verbose_level > 3)
96 printf_original(gsymlist, sym->dir_dep.expr);
97 el->be = kconfig_cnfexpr(gsymlist, false, sym->dir_dep.expr);
99 if (verbose_level > 2)
102 if (sym->rev_dep.expr != NULL) {
103 if (verbose_level > 3)
104 printf_original(gsymlist, sym->rev_dep.expr);
105 el->re_be = kconfig_cnfexpr(gsymlist, true, sym->rev_dep.expr);
106 Iprintf("Revers:\n");
107 if (verbose_level > 2)
108 cnf_printf(el->re_be);