| #!/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 'n'. | |
| 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/allnoconfig.py | |
| """ | |
| # See examples/allnoconfig_walk.py for another way to implement this script | |
| import kconfiglib | |
| def main(): | |
| kconf = kconfiglib.standard_kconfig(__doc__) | |
| # Avoid warnings that would otherwise get printed by Kconfiglib for the | |
| # following: | |
| # | |
| # 1. Assigning a value to a symbol without a prompt, which never has any | |
| # effect | |
| # | |
| # 2. Assigning values invalid for the type (only bool/tristate symbols | |
| # accept 0/1/2, for n/m/y). The assignments will be ignored for other | |
| # symbol types, which is what we want. | |
| kconf.warn = False | |
| for sym in kconf.unique_defined_syms: | |
| sym.set_value(2 if sym.is_allnoconfig_y else 0) | |
| kconf.warn = True | |
| kconf.load_allconfig("allno.config") | |
| print(kconf.write_config()) | |
| if __name__ == "__main__": | |
| main() |