aboutsummaryrefslogtreecommitdiff
path: root/scripts/permute_conf
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/permute_conf')
-rw-r--r--scripts/permute_conf/.gitignore1
-rw-r--r--scripts/permute_conf/Makefile25
-rw-r--r--scripts/permute_conf/constlist.h7
-rw-r--r--scripts/permute_conf/dotconf.c108
-rw-r--r--scripts/permute_conf/dotconf.h19
-rw-r--r--scripts/permute_conf/menudata.c58
-rw-r--r--scripts/permute_conf/menudata.h20
-rw-r--r--scripts/permute_conf/permute_conf.c180
-rw-r--r--scripts/permute_conf/permutelist.h17
9 files changed, 0 insertions, 435 deletions
diff --git a/scripts/permute_conf/.gitignore b/scripts/permute_conf/.gitignore
deleted file mode 100644
index 7fe1c05..0000000
--- a/scripts/permute_conf/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-permute_conf
diff --git a/scripts/permute_conf/Makefile b/scripts/permute_conf/Makefile
deleted file mode 100644
index e0f7cd2..0000000
--- a/scripts/permute_conf/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-MAKEFLAGS += --no-builtin-rules
-.PHONY: all clean
-.SUFFIXES:
-
-all: permute_conf
-
-KCONFIG_PREFIX = ../shared/kconfig
-include $(KCONFIG_PREFIX)/files.mk
-
-SRC = permute_conf.c \
- menudata.c \
- dotconf.c
-OBJ = $(patsubst %.c,%.o,$(SRC))
-CFLAGS = -O0 -Wall -ggdb -DDEBUG
-INCLUDES = -I../shared
-
-%.o: %.c
- gcc -c $(CFLAGS) -o $@ $^ $(INCLUDES)
-
-permute_conf: $(OBJ) $(KCONFIG_OBJ)
- gcc -o $@ $^
-
-clean::
- $(RM) $(OBJ)
- $(RM) permute_conf
diff --git a/scripts/permute_conf/constlist.h b/scripts/permute_conf/constlist.h
deleted file mode 100644
index 01f172a..0000000
--- a/scripts/permute_conf/constlist.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifndef _CONSTLIST_H_
-#define _CONSTLIST_H_
-
-#endif /* _CONSTLIST_H_ */
diff --git a/scripts/permute_conf/dotconf.c b/scripts/permute_conf/dotconf.c
deleted file mode 100644
index bf8e067..0000000
--- a/scripts/permute_conf/dotconf.c
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "dotconf.h"
-
-void dotconfig_read(bool * reqsave) {
- FILE *f;
- f = fopen(DOTCONFIG_FILE, "r");
- if (f == NULL) {
- *reqsave = true;
- return;
- }
-
- char buffer[READBUFFER_SIZE];
- while (fgets(buffer, READBUFFER_SIZE, f) != NULL) {
- if (buffer[0] == '\0' || buffer[1] == '\0')
- continue;
- if (buffer[0] != '#') {
- char *wstr = buffer + 7;
- char *end = strchr(wstr, '=');
- *end = '\0';
- struct symbol *sym = sym_find(wstr);
- if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
- continue;
- if ((sym_get_tristate_value(sym) == yes && *(end + 1) != 'y')
- || (sym_get_tristate_value(sym) == no
- && *(end + 1) != 'n'))
- *reqsave = true;
- struct property *prop;
- for_all_prompts(sym, prop) {
- if (prop->menu->data == NULL)
- prop->menu->data = menudata_new();
- }
- }
- }
-
- fclose(f);
-
- struct menu *wmenu;
- struct menu **stack;
- size_t stack_size = 2, stack_pos = 0;
- stack = malloc(stack_size * sizeof(struct menu *));
- wmenu = rootmenu.list;
- while (wmenu != NULL) {
- if (wmenu->list != NULL) {
- if (stack_pos >= stack_size) {
- stack_size *= 2;
- stack = realloc(stack, stack_size * sizeof(struct menu *));
- }
- stack[stack_pos++] = wmenu->list;
- }
- if (wmenu->data == NULL) {
- if (wmenu->sym == NULL || wmenu->sym->name == NULL) {
- wmenu->data = menudata_new();
- } else {
- wmenu->data = menudata_new();
- menudata_set_permute(wmenu, true);
- }
- }
- wmenu = wmenu->next;
- if (wmenu == NULL && stack_pos > 0)
- wmenu = stack[--stack_pos];
- }
- while (wmenu != NULL) {
- if (wmenu->list != NULL)
- stack[stack_pos++] = wmenu->list;
- if (wmenu->data == NULL) {
- if (wmenu->sym == NULL || wmenu->sym->name == NULL) {
- wmenu->data = menudata_new();
- } else {
- wmenu->data = menudata_new();
- menudata_set_permute(wmenu, true);
- }
- }
- wmenu = wmenu->next;
- if (wmenu == NULL && stack_pos > 0)
- wmenu = stack[--stack_pos];
- }
-}
-
-void dotconfig_write(void) {
- FILE *f;
- f = fopen(DOTCONFIG_FILE, "w");
-
- struct symbol *sym;
- struct property *prop;
- int i;
- unsigned variable = 0, fixed = 0;
- for_all_symbols(i, sym)
- if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE)
- && sym->name != NULL) {
- for_all_prompts(sym, prop) {
- if (prop->menu->data == NULL
- || !((struct menudata *) prop->menu->data)->permute) {
- fprintf(f, "CONFIG_%s=%s\n", sym->name,
- sym_get_tristate_value(sym) == no ? "n" : "y");
- fixed++;
- break;
- } else {
- variable++;
- if (verbose_level > 1)
- printf("%s=%s\n", sym->name,
- sym_get_tristate_value(sym) == no ? "n" : "y");
- }
- }
- }
-
- printf("Variable: %d, Fixed: %d\n", variable, fixed);
-
- fclose(f);
-}
diff --git a/scripts/permute_conf/dotconf.h b/scripts/permute_conf/dotconf.h
deleted file mode 100644
index 34fa8db..0000000
--- a/scripts/permute_conf/dotconf.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdbool.h>
-
-#include <kconfig/lkc.h>
-#include <macros.h>
-#include "menudata.h"
-
-#ifndef _DOTCONF_H_
-#define _DOTCONF_H_
-
-#define DOTCONFIG_FILE "../dot_config"
-#define READBUFFER_SIZE 128
-
-void dotconfig_read(bool * reqsave);
-void dotconfig_write(void);
-
-#endif /* _DOTCONF_H_ */
diff --git a/scripts/permute_conf/menudata.c b/scripts/permute_conf/menudata.c
deleted file mode 100644
index 88910ab..0000000
--- a/scripts/permute_conf/menudata.c
+++ /dev/null
@@ -1,58 +0,0 @@
-#include "menudata.h"
-
-struct menudata *menudata_new(void) {
- struct menudata *rtn;
- rtn = calloc(1, sizeof(struct menudata));
- return rtn;
-}
-
-void menudata_set_permute(struct menu *m, bool perm) {
- ((struct menudata *) m->data)->permute = perm;
- struct menu *prnt;
- for (prnt = m; prnt != NULL; prnt = prnt->parent) {
- menudata_cal(prnt);
- }
-}
-
-void menudata_set_all_permute(struct menu *m, bool perm) {
- menudata_set_permute(m, perm);
-
- struct menu **stack;
- size_t stack_size = 2, stack_pos = 0;
- stack = malloc(stack_size * sizeof(struct menu *));
-
- m = m->list;
- while (m != NULL) {
- if (m->data == NULL)
- m->data = menudata_new();
- ((struct menudata *) m->data)->permute = perm;
- ((struct menudata *) m->data)->subpermute = perm;
-
- if (m->list != NULL) {
- if (stack_pos >= stack_size) {
- stack_size *= 2;
- stack = realloc(stack, stack_size * sizeof(struct menu *));
- }
- stack[stack_pos++] = m->list;
- }
-
- m = m->next;
- if (m == NULL && stack_pos > 0)
- m = stack[--stack_pos];
- }
-
-}
-
-void menudata_cal(struct menu *m) {
- bool subperm = false;
- struct menu *w;
- for (w = m->list; w != NULL; w = w->next) {
- if (w->data != NULL && (((struct menudata *) w->data)->permute
- || ((struct menudata *) w->data)->
- subpermute)) {
- if (m->data == NULL)
- m->data = menudata_new();
- ((struct menudata *) m->data)->subpermute = subperm;
- }
- }
-}
diff --git a/scripts/permute_conf/menudata.h b/scripts/permute_conf/menudata.h
deleted file mode 100644
index a273891..0000000
--- a/scripts/permute_conf/menudata.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <stdlib.h>
-#include <stdbool.h>
-#include <stdio.h>
-
-#include <kconfig/lkc.h>
-
-#ifndef _MENUDATA_H_
-#define _MENUDATA_H_
-
-struct menudata {
- bool permute;
- bool subpermute;
-};
-
-struct menudata *menudata_new(void);
-void menudata_set_permute(struct menu *m, bool perm);
-void menudata_set_all_permute(struct menu *m, bool perm);
-void menudata_cal(struct menu *m);
-
-#endif /* _MENUDATA_H_ */
diff --git a/scripts/permute_conf/permute_conf.c b/scripts/permute_conf/permute_conf.c
deleted file mode 100644
index ec9abf0..0000000
--- a/scripts/permute_conf/permute_conf.c
+++ /dev/null
@@ -1,180 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdbool.h>
-#include <string.h>
-#include <locale.h>
-#include <libintl.h>
-#include <kconfig/lkc.h>
-#include <macros.h>
-#include <build_files.h>
-#include "menudata.h"
-#include "dotconf.h"
-
-#define INPUT_SIZE 1024
-
-int verbose_level;
-char *file;
-
-bool reqsave;
-
-void printf_help(void);
-void exit_save(void);
-
-int main(int argc, char **argv) {
- verbose_level = 1;
- int i;
- for (i = 1; i < argc; i++) {
- if (!strcmp(argv[i], "-v"))
- verbose_level++;
- else if (file == NULL)
- file = argv[i];
- else {
- Eprintf("Unknown parameter: %s\n", argv[i]);
- exit(1);
- }
- }
-
- if (file == NULL) {
- Eprintf("No Kconfig input file specified\n");
- exit(2);
- }
-
- setlocale(LC_ALL, "");
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
- conf_parse(file);
- conf_read(".config");
-
- dotconfig_read(&reqsave);
-
- struct menu *wroot, *wmenu, *wwmenu;
- wroot = &rootmenu;
- int menucount;
- char *input;
- int inputi;
- input = malloc(INPUT_SIZE * sizeof(char));
-
- printf_help();
-
- rootmenu.data = menudata_new();
- while (1) {
- printf("\n%s\n", wroot->prompt->text);
- wmenu = wroot->list;
- menucount = 0;
- while (wmenu != NULL) {
- if (wmenu->prompt != NULL
- && (wmenu->sym == NULL || wmenu->sym->type == S_BOOLEAN
- || wmenu->sym->type == S_TRISTATE
- || wmenu->sym->type == S_OTHER)) {
- if (wmenu->data == NULL)
- wmenu->data = menudata_new();
- printf("%3d", ++menucount);
- if (((struct menudata *) wmenu->data)->permute) {
- printf("<O>");
- } else if (((struct menudata *) wmenu->data)->subpermute) {
- printf("<->");
- } else {
- printf("<X>");
- }
- if (wmenu->sym == NULL || sym_is_choice(wmenu->sym))
- printf(" %s -->\n", wmenu->prompt->text);
- else
- printf(" %s\n", wmenu->prompt->text);
- }
- wmenu = wmenu->next;
- }
-
- input:
- printf("Input: ");
- fgets(input, INPUT_SIZE, stdin);
- switch (input[0]) {
- case 'e':
- case 'v':
- case 'f':
- inputi = atoi(input + 1);
- if (inputi <= 0 && inputi > menucount)
- goto input;
- int y = 0;
- wwmenu = wroot->list;
- while (1) {
- if (wwmenu->prompt != NULL
- && (wwmenu->sym == NULL
- || wwmenu->sym->type == S_BOOLEAN
- || wwmenu->sym->type == S_TRISTATE
- || wwmenu->sym->type == S_OTHER))
- y++;
- if (y >= inputi)
- break;
- wwmenu = wwmenu->next;
- }
- break;
- case 'u':
- if (wroot->parent == NULL)
- goto input;
- wroot = wroot->parent;
- break;
- case 's':
- reqsave = false;
- dotconfig_write();
- printf("Configuration saved...\n");
- case 'r':
- break;
- case 'q':
- goto quit;
- case 'h':
- printf_help();
- default:
- goto input;
- }
- switch (input[0]) {
- case 'e':
- if (wwmenu->list != NULL)
- wroot = wwmenu;
- else
- goto input;
- break;
- case 'v':
- if (input[1] == 'a') {
- menudata_set_all_permute(wwmenu, true);
- } else {
- menudata_set_permute(wwmenu, true);
- }
- reqsave = true;
- break;
- case 'f':
- menudata_set_permute(wwmenu, false);
- reqsave = true;
- break;
- }
- }
-
- quit:
- exit_save();
-
- return 0;
-}
-
-void printf_help(void) {
- printf("As input are accepted these commands:\n");
- printf(" e <NUM> Enter menu according to number.\n");
- printf(" u Go to previous upper menu.\n");
- printf(" v <NUM> Set config as variable.\n");
- printf(" va <NUM> Set menu and all its submenus as variable.\n");
- printf(" f <NUM> Set menu and all its submenus as fixed.\n");
- printf(" s Save settings.\n");
- printf(" r Reprint menu.\n");
- printf(" h Prints this text.\n");
- printf(" q Quit this program\n");
-}
-
-void exit_save(void) {
- if (!reqsave)
- return;
- printf("Unsaved chages. Save (y/N): ");
- int ch = fgetc(stdin);
- if (ch == 'y' || ch == 'Y') {
- dotconfig_write();
- printf("Configuration saved.\n");
- }
-}
diff --git a/scripts/permute_conf/permutelist.h b/scripts/permute_conf/permutelist.h
deleted file mode 100644
index 725f6d6..0000000
--- a/scripts/permute_conf/permutelist.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <stdlib.h>
-#include <stdbool.h>
-#include <kconfig/lkc.h>
-
-#ifndef _PERMUTELIST_H_
-#define _PERMUTELIST_H_
-
-struct permutelist {
- struct menu *permute;
- size_t size, pos;
-};
-
-void permutelist_add(struct menu *m);
-void permutelist_remove(struct menu *m);
-bool permutelist_is_permute(struct menu *m);
-
-#endif /* _PERMUTELIST_H_ */