| #!/usr/bin/env python3 |
| |
| # Copyright (c) 2018-2019, Ulf Magnusson |
| # SPDX-License-Identifier: ISC |
| |
| """ |
| Writes a configuration file where as many symbols as possible are set to 'y'. |
| |
| The default output filename is '.config'. A different filename can be passed |
| in the KCONFIG_CONFIG environment variable. |
| |
| Usage for the Linux kernel: |
| |
| $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/allyesconfig.py |
| """ |
| import kconfiglib |
| |
| |
| def main(): |
| kconf = kconfiglib.standard_kconfig(__doc__) |
| |
| # See allnoconfig.py |
| kconf.warn = False |
| |
| # Try to set all symbols to 'y'. Dependencies might truncate the value down |
| # later, but this will at least give the highest possible value. |
| # |
| # Assigning 0/1/2 to non-bool/tristate symbols has no effect (int/hex |
| # symbols still take a string, because they preserve formatting). |
| for sym in kconf.unique_defined_syms: |
| # Set choice symbols to 'm'. This value will be ignored for choices in |
| # 'y' mode (the "normal" mode), which will instead just get their |
| # default selection, but will set all symbols in m-mode choices to 'm', |
| # which is as high as they can go. |
| # |
| # Here's a convoluted example of how you might get an m-mode choice |
| # even during allyesconfig: |
| # |
| # choice |
| # tristate "weird choice" |
| # depends on m |
| sym.set_value(1 if sym.choice else 2) |
| |
| # Set all choices to the highest possible mode |
| for choice in kconf.unique_choices: |
| choice.set_value(2) |
| |
| kconf.warn = True |
| |
| kconf.load_allconfig("allyes.config") |
| |
| print(kconf.write_config()) |
| |
| |
| if __name__ == "__main__": |
| main() |