diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2019-11-17 05:39:37 +0100 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2019-11-17 06:03:00 +0100 |
| commit | bb3be6ee9793f23c275d318f58cb6cf21391b371 (patch) | |
| tree | 1cbcf07fb72f1bfdc7cd4ffde62937de77738a1f | |
| parent | de45874719772a40f1d8d244e2f5a6c6036415ac (diff) | |
Support giving the header path in KCONFIG_AUTOHEADER
This environment variable is used by the C tools. Use it when
filename=None is passed to write_autoconf(), and default to
include/generated/autoconf.h for compatibility.
Also update genconfig.py to use KCONFIG_AUTOHEADER if set when no
--header-path is passed. If KCONFIG_AUTOHEADER isn't set, keep
defaulting to 'config.h' for backwards compatibility. It's probably a
saner default for tools as well.
| -rwxr-xr-x | genconfig.py | 21 | ||||
| -rw-r--r-- | kconfiglib.py | 20 |
2 files changed, 30 insertions, 11 deletions
diff --git a/genconfig.py b/genconfig.py index 96124c5..b202a5b 100755 --- a/genconfig.py +++ b/genconfig.py @@ -35,7 +35,6 @@ import sys import kconfiglib -DEFAULT_HEADER_PATH = "config.h" DEFAULT_SYNC_DEPS_PATH = "deps/" @@ -47,9 +46,11 @@ def main(): parser.add_argument( "--header-path", metavar="HEADER_FILE", - default=DEFAULT_HEADER_PATH, - help="Path for the generated header file (default: {})" - .format(DEFAULT_HEADER_PATH)) + help=""" +Path to write the generated header file to. If not specified, the path in the +environment variable KCONFIG_AUTOHEADER is used if it is set, and 'config.h' +otherwise. +""") parser.add_argument( "--config-out", @@ -107,7 +108,17 @@ only supported for backwards compatibility). kconf = kconfiglib.Kconfig(args.kconfig_filename) kconf.load_config() - kconf.write_autoconf(args.header_path) + if args.header_path is None: + if "KCONFIG_AUTOHEADER" in os.environ: + kconf.write_autoconf() + else: + # Kconfiglib defaults to include/generated/autoconf.h to be + # compatible with the C tools. 'config.h' is used here instead for + # backwards compatibility. It's probably a saner default for tools + # as well. + kconf.write_autoconf("config.h") + else: + kconf.write_autoconf(args.header_path) if args.config_out is not None: kconf.write_config(args.config_out, save_old=False) diff --git a/kconfiglib.py b/kconfiglib.py index 079c363..7fe3f2e 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -1363,7 +1363,7 @@ class Kconfig(object): elif self.warn_assign_override: self._warn(msg, filename, linenr) - def write_autoconf(self, filename, header=None): + def write_autoconf(self, filename=None, header=None): r""" Writes out symbol values as a C header file, matching the format used by include/generated/autoconf.h in the kernel. @@ -1377,8 +1377,12 @@ class Kconfig(object): like the modification time and possibly triggering redundant work in build tools. - filename: - Self-explanatory. + filename (default: None): + Path to write header to. + + If None (the default), the path in the environment variable + KCONFIG_AUTOHEADER is used if set, and "include/generated/autoconf.h" + otherwise. This is compatible with the C tools. header (default: None): Text inserted verbatim at the beginning of the file. You would @@ -1390,6 +1394,10 @@ class Kconfig(object): will be used if it was set, and no header otherwise. See the Kconfig.header_header attribute. """ + if filename is None: + filename = os.getenv("KCONFIG_AUTOHEADER", + "include/generated/autoconf.h") + self._write_if_changed(filename, self._autoconf_contents(header)) def _autoconf_contents(self, header): @@ -1458,9 +1466,9 @@ class Kconfig(object): (OSError/IOError). KconfigError is never raised here. filename (default: None): - Filename to save configuration to (a string). + Path to write configuration to (a string). - If None (the default), the filename in the environment variable + If None (the default), the path in the environment variable KCONFIG_CONFIG is used if set, and ".config" otherwise. See standard_config_filename(). @@ -1606,7 +1614,7 @@ class Kconfig(object): (OSError/IOError). KconfigError is never raised here. filename: - Self-explanatory. + Path to write minimal configuration to. header (default: None): Text inserted verbatim at the beginning of the file. You would |
