1*c689edbbSJens Wiklander#!/usr/bin/env python3 2*c689edbbSJens Wiklander 3*c689edbbSJens Wiklander# Copyright (c) 2018-2019, Ulf Magnusson 4*c689edbbSJens Wiklander# SPDX-License-Identifier: ISC 5*c689edbbSJens Wiklander 6*c689edbbSJens Wiklander""" 7*c689edbbSJens WiklanderWrites a configuration file where as many symbols as possible are set to 'm'. 8*c689edbbSJens Wiklander 9*c689edbbSJens WiklanderThe default output filename is '.config'. A different filename can be passed 10*c689edbbSJens Wiklanderin the KCONFIG_CONFIG environment variable. 11*c689edbbSJens Wiklander 12*c689edbbSJens WiklanderUsage for the Linux kernel: 13*c689edbbSJens Wiklander 14*c689edbbSJens Wiklander $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/allmodconfig.py 15*c689edbbSJens Wiklander""" 16*c689edbbSJens Wiklanderimport kconfiglib 17*c689edbbSJens Wiklander 18*c689edbbSJens Wiklander 19*c689edbbSJens Wiklanderdef main(): 20*c689edbbSJens Wiklander kconf = kconfiglib.standard_kconfig(__doc__) 21*c689edbbSJens Wiklander 22*c689edbbSJens Wiklander # See allnoconfig.py 23*c689edbbSJens Wiklander kconf.warn = False 24*c689edbbSJens Wiklander 25*c689edbbSJens Wiklander for sym in kconf.unique_defined_syms: 26*c689edbbSJens Wiklander if sym.orig_type == kconfiglib.BOOL: 27*c689edbbSJens Wiklander # 'bool' choice symbols get their default value, as determined by 28*c689edbbSJens Wiklander # e.g. 'default's on the choice 29*c689edbbSJens Wiklander if not sym.choice: 30*c689edbbSJens Wiklander # All other bool symbols get set to 'y', like for allyesconfig 31*c689edbbSJens Wiklander sym.set_value(2) 32*c689edbbSJens Wiklander elif sym.orig_type == kconfiglib.TRISTATE: 33*c689edbbSJens Wiklander sym.set_value(1) 34*c689edbbSJens Wiklander 35*c689edbbSJens Wiklander for choice in kconf.unique_choices: 36*c689edbbSJens Wiklander choice.set_value(2 if choice.orig_type == kconfiglib.BOOL else 1) 37*c689edbbSJens Wiklander 38*c689edbbSJens Wiklander kconf.warn = True 39*c689edbbSJens Wiklander 40*c689edbbSJens Wiklander kconf.load_allconfig("allmod.config") 41*c689edbbSJens Wiklander 42*c689edbbSJens Wiklander print(kconf.write_config()) 43*c689edbbSJens Wiklander 44*c689edbbSJens Wiklander 45*c689edbbSJens Wiklanderif __name__ == "__main__": 46*c689edbbSJens Wiklander main() 47