From: Karel Kočí Date: Fri, 17 Jul 2015 11:42:03 +0000 (+0200) Subject: Integrate allconfig X-Git-Tag: v201509~127 X-Git-Url: https://rtime.felk.cvut.cz/gitweb/linux-conf-perf.git/commitdiff_plain/2640d58ee088d4bcfedfd9069292dc1af9cad7a2 Integrate allconfig allconfig is now integrated in project. It is going to replace permute_conf for generating. For this reason is default behaviour changed to print only changeable configurtaion options. Previous behaviour can be used with --all switch. Also add .gitignore and remove compiled file from repository. --- diff --git a/Makefile b/Makefile index e22358c..e95c742 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ -include .conf.mk -all: parse_kconfig write_config permute_conf picosat +all: parse_kconfig write_config allconfig permute_conf picosat help: @echo "all - Builds basic programs and prints message about next steps." @@ -60,6 +60,7 @@ clean: @$(MAKE) -C scripts/parse_kconfig clean @$(MAKE) -C scripts/write_config clean @$(MAKE) -C scripts/permute_conf clean + @$(MAKE) -C scripts/allconfig clean @if [ -e scripts/picosat-959/makefile ]; then $(MAKE) -C scripts/picosat-959 clean; fi $(RM) .conf.mk $(RM) -r jobfiles output result @@ -90,6 +91,9 @@ parse_kconfig: write_config: @$(MAKE) -C scripts/write_config/ +allconfig: + @$(MAKE) -C scripts/allconfig/ + permute_conf: @$(MAKE) -C scripts/permute_conf/ diff --git a/scripts/allconfig/.gitignore b/scripts/allconfig/.gitignore new file mode 100644 index 0000000..14a250f --- /dev/null +++ b/scripts/allconfig/.gitignore @@ -0,0 +1 @@ +allconfig diff --git a/scripts/allconfig/allconfig b/scripts/allconfig/allconfig deleted file mode 100755 index cc714c1..0000000 Binary files a/scripts/allconfig/allconfig and /dev/null differ diff --git a/scripts/allconfig/allconfig.c b/scripts/allconfig/allconfig.c index 65c8b56..acd1050 100644 --- a/scripts/allconfig/allconfig.c +++ b/scripts/allconfig/allconfig.c @@ -2,23 +2,33 @@ #include #include #include +#include #include #include #include int verbose_level; +bool full_config; char *kconfig_file; char *output_config_file; char *input_config_file; -int main(int argc, char ** argv) { +void print_help(); + +int main(int argc, char **argv) { + full_config = false; verbose_level = 1; int i; for (i = 1; i < argc; i++) { - if (!strcmp(argv[i], "-v")) { + if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h")) { + print_help(); + exit(0); + } else if (!strcmp(argv[i], "-v")) { verbose_level++; + } else if (!strcmp(argv[i], "--all")) { + full_config = true; } else if (kconfig_file == NULL) { kconfig_file = argv[i]; } else if (input_config_file == NULL) { @@ -31,8 +41,10 @@ int main(int argc, char ** argv) { } } - if (output_config_file == NULL || kconfig_file == NULL || input_config_file == NULL) { - Eprintf("Use with parameters: kconfig_file input_config output_config\n"); + if (output_config_file == NULL || kconfig_file == NULL + || input_config_file == NULL) { + Eprintf("Parameters mismatch.\n"); + print_help(); exit(-2); } @@ -59,8 +71,18 @@ int main(int argc, char ** argv) { exit(-3); } + struct property *prop; for_all_symbols(i, sym) { - if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE) && sym->name != NULL) { + if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE) + && sym->name != NULL) { + if (!full_config) { + for_all_prompts(sym, prop) { + goto printit; + } + } else + goto printit; + continue; + printit: fprintf(f, "CONFIG_%s=%s\n", sym->name, sym_get_tristate_value(sym) == no ? "n" : "y"); } @@ -69,3 +91,9 @@ int main(int argc, char ** argv) { return 0; } + +void print_help() { + printf("Usage: allconfig [-v] [-h] Kconfig Input Output\n"); + printf(" This is generating full configuration.\n"); + printf(" Output configuration has all configuration options.\n"); +}