diff options
| -rw-r--r-- | README.rst | 7 | ||||
| -rwxr-xr-x | defconfig.py | 43 | ||||
| -rw-r--r-- | setup.py | 2 |
3 files changed, 52 insertions, 0 deletions
@@ -65,6 +65,8 @@ available in the C tools. - `savedefconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/savedefconfig.py>`_ +- `defconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/defconfig.py>`_ + - `alldefconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/alldefconfig.py>`_ - `allnoconfig <https://github.com/ulfalizer/Kconfiglib/blob/master/allnoconfig.py>`_ @@ -133,6 +135,11 @@ Getting started 3. Generate an initial configuration with e.g. ``menuconfig`` or ``alldefconfig``. The configuration is saved as ``.config`` by default. + For more advanced projects, the ``defconfig`` utility can be used to + generate the initial configuration from an existing configuration file. + Usually, this existing configuration file would be a minimal configuration + file, as generated by e.g. ``savedefconfig``. + 4. Run ``genconfig`` to generate a header file. By default, it is saved as ``config.h``. diff --git a/defconfig.py b/defconfig.py new file mode 100755 index 0000000..7b02833 --- /dev/null +++ b/defconfig.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +# Copyright (c) 2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Reads a specified configuration file, then writes a new configuration file. +This can be used to initialize the configuration from e.g. an arch-specific +configuration file. This input configuration file would usually be a minimal +configuration file, as generated by e.g. savedefconfig. + +The default output filename is '.config'. A different filename can be passed in +the KCONFIG_CONFIG environment variable. +""" +import argparse + +import kconfiglib + + +def main(): + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=__doc__) + + parser.add_argument( + "--kconfig", + default="Kconfig", + help="Base Kconfig file (default: Kconfig)") + + parser.add_argument( + "config", + metavar="CONFIGURATION", + help="Input configuration file") + + args = parser.parse_args() + + kconf = kconfiglib.Kconfig(args.kconfig) + kconf.load_config(args.config) + kconf.write_config() + + +if __name__ == "__main__": + main() @@ -33,6 +33,7 @@ setuptools.setup( "oldconfig", "olddefconfig", "savedefconfig", + "defconfig", "alldefconfig", "allnoconfig", "allmodconfig", @@ -50,6 +51,7 @@ setuptools.setup( "oldconfig = oldconfig:_main", "olddefconfig = olddefconfig:main", "savedefconfig = savedefconfig:main", + "defconfig = defconfig:main", "alldefconfig = alldefconfig:main", "allnoconfig = allnoconfig:main", "allmodconfig = allmodconfig:main", |
