#!/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 'm'. 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=] scriptconfig SCRIPT=Kconfiglib/allmodconfig.py """ import kconfiglib def main(): kconf = kconfiglib.standard_kconfig(__doc__) # See allnoconfig.py kconf.warn = False for sym in kconf.unique_defined_syms: if sym.orig_type == kconfiglib.BOOL: # 'bool' choice symbols get their default value, as determined by # e.g. 'default's on the choice if not sym.choice: # All other bool symbols get set to 'y', like for allyesconfig sym.set_value(2) elif sym.orig_type == kconfiglib.TRISTATE: sym.set_value(1) for choice in kconf.unique_choices: choice.set_value(2 if choice.orig_type == kconfiglib.BOOL else 1) kconf.warn = True kconf.load_allconfig("allmod.config") print(kconf.write_config()) if __name__ == "__main__": main()