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 'n'. 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/allnoconfig.py 15*c689edbbSJens Wiklander""" 16*c689edbbSJens Wiklander 17*c689edbbSJens Wiklander# See examples/allnoconfig_walk.py for another way to implement this script 18*c689edbbSJens Wiklander 19*c689edbbSJens Wiklanderimport kconfiglib 20*c689edbbSJens Wiklander 21*c689edbbSJens Wiklander 22*c689edbbSJens Wiklanderdef main(): 23*c689edbbSJens Wiklander kconf = kconfiglib.standard_kconfig(__doc__) 24*c689edbbSJens Wiklander 25*c689edbbSJens Wiklander # Avoid warnings that would otherwise get printed by Kconfiglib for the 26*c689edbbSJens Wiklander # following: 27*c689edbbSJens Wiklander # 28*c689edbbSJens Wiklander # 1. Assigning a value to a symbol without a prompt, which never has any 29*c689edbbSJens Wiklander # effect 30*c689edbbSJens Wiklander # 31*c689edbbSJens Wiklander # 2. Assigning values invalid for the type (only bool/tristate symbols 32*c689edbbSJens Wiklander # accept 0/1/2, for n/m/y). The assignments will be ignored for other 33*c689edbbSJens Wiklander # symbol types, which is what we want. 34*c689edbbSJens Wiklander kconf.warn = False 35*c689edbbSJens Wiklander for sym in kconf.unique_defined_syms: 36*c689edbbSJens Wiklander sym.set_value(2 if sym.is_allnoconfig_y else 0) 37*c689edbbSJens Wiklander kconf.warn = True 38*c689edbbSJens Wiklander 39*c689edbbSJens Wiklander kconf.load_allconfig("allno.config") 40*c689edbbSJens Wiklander 41*c689edbbSJens Wiklander print(kconf.write_config()) 42*c689edbbSJens Wiklander 43*c689edbbSJens Wiklander 44*c689edbbSJens Wiklanderif __name__ == "__main__": 45*c689edbbSJens Wiklander main() 46