Commit c39afe62 authored by Josh Triplett's avatar Josh Triplett Committed by Masahiro Yamada

kconfig: Add `make mod2noconfig` to disable module options

When converting a modular kernel to a monolithic kernel, once the kernel
works without loading any modules, this helps to quickly disable all the
modules before turning off module support entirely.

Refactor conf_rewrite_mod_or_yes to a more general
conf_rewrite_tristates that accepts an old and new state.
Signed-off-by: default avatarJosh Triplett <josh@joshtriplett.org>
Tested-by: default avatarBjörn Töpel <bjorn@kernel.org>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent d58071a8
...@@ -69,7 +69,7 @@ localyesconfig localmodconfig: $(obj)/conf ...@@ -69,7 +69,7 @@ localyesconfig localmodconfig: $(obj)/conf
# deprecated for external use # deprecated for external use
simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \ simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
alldefconfig randconfig listnewconfig olddefconfig syncconfig \ alldefconfig randconfig listnewconfig olddefconfig syncconfig \
helpnewconfig yes2modconfig mod2yesconfig helpnewconfig yes2modconfig mod2yesconfig mod2noconfig
PHONY += $(simple-targets) PHONY += $(simple-targets)
...@@ -134,6 +134,7 @@ help: ...@@ -134,6 +134,7 @@ help:
@echo ' randconfig - New config with random answer to all options' @echo ' randconfig - New config with random answer to all options'
@echo ' yes2modconfig - Change answers from yes to mod if possible' @echo ' yes2modconfig - Change answers from yes to mod if possible'
@echo ' mod2yesconfig - Change answers from mod to yes if possible' @echo ' mod2yesconfig - Change answers from mod to yes if possible'
@echo ' mod2noconfig - Change answers from mod to no if possible'
@echo ' listnewconfig - List new options' @echo ' listnewconfig - List new options'
@echo ' helpnewconfig - List new options and help text' @echo ' helpnewconfig - List new options and help text'
@echo ' olddefconfig - Same as oldconfig but sets new symbols to their' @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
......
...@@ -35,6 +35,7 @@ enum input_mode { ...@@ -35,6 +35,7 @@ enum input_mode {
olddefconfig, olddefconfig,
yes2modconfig, yes2modconfig,
mod2yesconfig, mod2yesconfig,
mod2noconfig,
}; };
static enum input_mode input_mode = oldaskconfig; static enum input_mode input_mode = oldaskconfig;
static int input_mode_opt; static int input_mode_opt;
...@@ -163,8 +164,6 @@ enum conf_def_mode { ...@@ -163,8 +164,6 @@ enum conf_def_mode {
def_default, def_default,
def_yes, def_yes,
def_mod, def_mod,
def_y2m,
def_m2y,
def_no, def_no,
def_random def_random
}; };
...@@ -302,12 +301,10 @@ static bool conf_set_all_new_symbols(enum conf_def_mode mode) ...@@ -302,12 +301,10 @@ static bool conf_set_all_new_symbols(enum conf_def_mode mode)
return has_changed; return has_changed;
} }
static void conf_rewrite_mod_or_yes(enum conf_def_mode mode) static void conf_rewrite_tristates(tristate old_val, tristate new_val)
{ {
struct symbol *sym; struct symbol *sym;
int i; int i;
tristate old_val = (mode == def_y2m) ? yes : mod;
tristate new_val = (mode == def_y2m) ? mod : yes;
for_all_symbols(i, sym) { for_all_symbols(i, sym) {
if (sym_get_type(sym) == S_TRISTATE && if (sym_get_type(sym) == S_TRISTATE &&
...@@ -685,6 +682,7 @@ static const struct option long_opts[] = { ...@@ -685,6 +682,7 @@ static const struct option long_opts[] = {
{"olddefconfig", no_argument, &input_mode_opt, olddefconfig}, {"olddefconfig", no_argument, &input_mode_opt, olddefconfig},
{"yes2modconfig", no_argument, &input_mode_opt, yes2modconfig}, {"yes2modconfig", no_argument, &input_mode_opt, yes2modconfig},
{"mod2yesconfig", no_argument, &input_mode_opt, mod2yesconfig}, {"mod2yesconfig", no_argument, &input_mode_opt, mod2yesconfig},
{"mod2noconfig", no_argument, &input_mode_opt, mod2noconfig},
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
...@@ -713,6 +711,7 @@ static void conf_usage(const char *progname) ...@@ -713,6 +711,7 @@ static void conf_usage(const char *progname)
printf(" --randconfig New config with random answer to all options\n"); printf(" --randconfig New config with random answer to all options\n");
printf(" --yes2modconfig Change answers from yes to mod if possible\n"); printf(" --yes2modconfig Change answers from yes to mod if possible\n");
printf(" --mod2yesconfig Change answers from mod to yes if possible\n"); printf(" --mod2yesconfig Change answers from mod to yes if possible\n");
printf(" --mod2noconfig Change answers from mod to no if possible\n");
printf(" (If none of the above is given, --oldaskconfig is the default)\n"); printf(" (If none of the above is given, --oldaskconfig is the default)\n");
} }
...@@ -788,6 +787,7 @@ int main(int ac, char **av) ...@@ -788,6 +787,7 @@ int main(int ac, char **av)
case olddefconfig: case olddefconfig:
case yes2modconfig: case yes2modconfig:
case mod2yesconfig: case mod2yesconfig:
case mod2noconfig:
conf_read(NULL); conf_read(NULL);
break; break;
case allnoconfig: case allnoconfig:
...@@ -862,10 +862,13 @@ int main(int ac, char **av) ...@@ -862,10 +862,13 @@ int main(int ac, char **av)
case savedefconfig: case savedefconfig:
break; break;
case yes2modconfig: case yes2modconfig:
conf_rewrite_mod_or_yes(def_y2m); conf_rewrite_tristates(yes, mod);
break; break;
case mod2yesconfig: case mod2yesconfig:
conf_rewrite_mod_or_yes(def_m2y); conf_rewrite_tristates(mod, yes);
break;
case mod2noconfig:
conf_rewrite_tristates(mod, no);
break; break;
case oldaskconfig: case oldaskconfig:
rootEntry = &rootmenu; rootEntry = &rootmenu;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment