summaryrefslogtreecommitdiff
path: root/allyesconfig.py
diff options
context:
space:
mode:
Diffstat (limited to 'allyesconfig.py')
-rwxr-xr-xallyesconfig.py39
1 files changed, 12 insertions, 27 deletions
diff --git a/allyesconfig.py b/allyesconfig.py
index 934a2c5..4c0ecbe 100755
--- a/allyesconfig.py
+++ b/allyesconfig.py
@@ -38,34 +38,19 @@ def main():
# Small optimization
BOOL_TRI = (kconfiglib.BOOL, kconfiglib.TRISTATE)
+ # Try to set all bool/tristate symbols to 'y'. Dependencies might truncate
+ # the value down later, but this will at least give the highest possible
+ # value.
for sym in kconf.defined_syms:
- if sym.orig_type in BOOL_TRI and not sym.choice:
- sym.set_value(2)
-
- # This might be slightly more robust than what the C tools do for choices,
- # as raising one choice might allow other choices to be raised. It
- # currently produces the same output for all ARCHes though.
-
- while True:
- changed = False
-
- for choice in kconf.choices:
- if choice.assignable and choice.tri_value < choice.assignable[-1]:
- choice.set_value(choice.assignable[-1])
-
- # For y-mode choices, we just let the choice get its default
- # selection. For m-mode choices, we set all choice symbols to
- # m.
- if choice.tri_value == 1:
- for sym in choice.syms:
- sym.set_value(1)
-
- changed = True
-
- # Do multiple passes until we longer manage to raise any choices, like
- # in allnoconfig_walk.py
- if not changed:
- break
+ if sym.orig_type in BOOL_TRI:
+ # Set all choice symbols to 'm'. This value will be ignored for
+ # choices in 'y' mode (the "normal" mode), but will set all symbols
+ # in m-mode choices to 'm', which is as high as they can go.
+ sym.set_value(1 if sym.choice else 2)
+
+ # Set all choices to the highest possible mode
+ for choice in kconf.choices:
+ choice.set_value(2)
kconf.write_config(kconfiglib.standard_config_filename())