diff options
Diffstat (limited to 'scripts/allconfig')
-rw-r--r-- | scripts/allconfig/.gitignore | 1 | ||||
-rwxr-xr-x | scripts/allconfig/allconfig | bin | 130016 -> 0 bytes | |||
-rw-r--r-- | scripts/allconfig/allconfig.c | 38 |
3 files changed, 34 insertions, 5 deletions
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 Binary files differdeleted file mode 100755 index cc714c1..0000000 --- a/scripts/allconfig/allconfig +++ /dev/null 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 <stdio.h> #include <string.h> #include <locale.h> +#include <stdbool.h> #include <kconfig/lkc.h> #include <build_files.h> #include <macros.h> 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"); +} |