aboutsummaryrefslogtreecommitdiff
path: root/scripts/permute_conf
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2015-07-22 11:47:51 +0200
committerKarel Kočí <cynerd@email.cz>2015-07-22 11:47:51 +0200
commitad1a1dd1f2fb8be0c37a31d0c9a53932ec824812 (patch)
treef180482e1c05f15958063057bcec71efcc0633c9 /scripts/permute_conf
parente291e4e7c831f34238bbcda1c39659826f04191c (diff)
downloadlinux-conf-perf-ad1a1dd1f2fb8be0c37a31d0c9a53932ec824812.tar.gz
linux-conf-perf-ad1a1dd1f2fb8be0c37a31d0c9a53932ec824812.tar.bz2
linux-conf-perf-ad1a1dd1f2fb8be0c37a31d0c9a53932ec824812.zip
Remove permute_conf
permute_conf was only temporally program for generating dot_config file. Its main function now has program allconfig. This program has also some text interface, but it wasn't optimal and in the end wasn't used at all.
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_ */