buildman: Squash useless output from -K
When using #define CONFIG_SOME_OPTION, the value it set to '1'. When using defconfig (i.e. CONFIG_SOME_OPTION=y) the value is set to 'y'. This results in differences showing up with -K. These differences are seldom useful. Adjust buildman to suppress these differences by default. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
94d2ebe5bc
commit
b464f8e7de
|
@ -1004,6 +1004,18 @@ configuration you can in fact avoid doing a full build, using -D. This tells
|
||||||
buildman to configuration U-Boot and create the .cfg files, but not actually
|
buildman to configuration U-Boot and create the .cfg files, but not actually
|
||||||
build the source. This is 5-10 times faster than doing a full build.
|
build the source. This is 5-10 times faster than doing a full build.
|
||||||
|
|
||||||
|
By default buildman considers the follow two configuration methods
|
||||||
|
equivalent:
|
||||||
|
|
||||||
|
#define CONFIG_SOME_OPTION
|
||||||
|
|
||||||
|
CONFIG_SOME_OPTION=y
|
||||||
|
|
||||||
|
The former would appear in a header filer and the latter in a defconfig
|
||||||
|
file. The achieve this, buildman considers 'y' to be '1' in configuration
|
||||||
|
variables. This avoids lots of useless output when converting a CONFIG
|
||||||
|
option to Kconfig. To disable this behaviour, use --squash-config-y.
|
||||||
|
|
||||||
|
|
||||||
Other options
|
Other options
|
||||||
=============
|
=============
|
||||||
|
|
|
@ -98,19 +98,22 @@ OUTCOME_OK, OUTCOME_WARNING, OUTCOME_ERROR, OUTCOME_UNKNOWN = range(4)
|
||||||
# Translate a commit subject into a valid filename
|
# Translate a commit subject into a valid filename
|
||||||
trans_valid_chars = string.maketrans("/: ", "---")
|
trans_valid_chars = string.maketrans("/: ", "---")
|
||||||
|
|
||||||
CONFIG_FILENAMES = [
|
BASE_CONFIG_FILENAMES = [
|
||||||
|
'u-boot.cfg', 'u-boot-spl.cfg', 'u-boot-tpl.cfg'
|
||||||
|
]
|
||||||
|
|
||||||
|
EXTRA_CONFIG_FILENAMES = [
|
||||||
'.config', '.config-spl', '.config-tpl',
|
'.config', '.config-spl', '.config-tpl',
|
||||||
'autoconf.mk', 'autoconf-spl.mk', 'autoconf-tpl.mk',
|
'autoconf.mk', 'autoconf-spl.mk', 'autoconf-tpl.mk',
|
||||||
'autoconf.h', 'autoconf-spl.h','autoconf-tpl.h',
|
'autoconf.h', 'autoconf-spl.h','autoconf-tpl.h',
|
||||||
'u-boot.cfg', 'u-boot-spl.cfg', 'u-boot-tpl.cfg'
|
|
||||||
]
|
]
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
"""Holds information about configuration settings for a board."""
|
"""Holds information about configuration settings for a board."""
|
||||||
def __init__(self, target):
|
def __init__(self, config_filename, target):
|
||||||
self.target = target
|
self.target = target
|
||||||
self.config = {}
|
self.config = {}
|
||||||
for fname in CONFIG_FILENAMES:
|
for fname in config_filename:
|
||||||
self.config[fname] = {}
|
self.config[fname] = {}
|
||||||
|
|
||||||
def Add(self, fname, key, value):
|
def Add(self, fname, key, value):
|
||||||
|
@ -208,7 +211,7 @@ class Builder:
|
||||||
gnu_make='make', checkout=True, show_unknown=True, step=1,
|
gnu_make='make', checkout=True, show_unknown=True, step=1,
|
||||||
no_subdirs=False, full_path=False, verbose_build=False,
|
no_subdirs=False, full_path=False, verbose_build=False,
|
||||||
incremental=False, per_board_out_dir=False,
|
incremental=False, per_board_out_dir=False,
|
||||||
config_only=False):
|
config_only=False, squash_config_y=False):
|
||||||
"""Create a new Builder object
|
"""Create a new Builder object
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -232,6 +235,7 @@ class Builder:
|
||||||
per_board_out_dir: Build in a separate persistent directory per
|
per_board_out_dir: Build in a separate persistent directory per
|
||||||
board rather than a thread-specific directory
|
board rather than a thread-specific directory
|
||||||
config_only: Only configure each build, don't build it
|
config_only: Only configure each build, don't build it
|
||||||
|
squash_config_y: Convert CONFIG options with the value 'y' to '1'
|
||||||
"""
|
"""
|
||||||
self.toolchains = toolchains
|
self.toolchains = toolchains
|
||||||
self.base_dir = base_dir
|
self.base_dir = base_dir
|
||||||
|
@ -260,6 +264,10 @@ class Builder:
|
||||||
self.full_path = full_path
|
self.full_path = full_path
|
||||||
self.verbose_build = verbose_build
|
self.verbose_build = verbose_build
|
||||||
self.config_only = config_only
|
self.config_only = config_only
|
||||||
|
self.squash_config_y = squash_config_y
|
||||||
|
self.config_filenames = BASE_CONFIG_FILENAMES
|
||||||
|
if not self.squash_config_y:
|
||||||
|
self.config_filenames += EXTRA_CONFIG_FILENAMES
|
||||||
|
|
||||||
self.col = terminal.Color()
|
self.col = terminal.Color()
|
||||||
|
|
||||||
|
@ -586,13 +594,15 @@ class Builder:
|
||||||
key, value = values
|
key, value = values
|
||||||
else:
|
else:
|
||||||
key = values[0]
|
key = values[0]
|
||||||
value = ''
|
value = '1' if self.squash_config_y else ''
|
||||||
if not key.startswith('CONFIG_'):
|
if not key.startswith('CONFIG_'):
|
||||||
continue
|
continue
|
||||||
elif not line or line[0] in ['#', '*', '/']:
|
elif not line or line[0] in ['#', '*', '/']:
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
key, value = line.split('=', 1)
|
key, value = line.split('=', 1)
|
||||||
|
if self.squash_config_y and value == 'y':
|
||||||
|
value = '1'
|
||||||
config[key] = value
|
config[key] = value
|
||||||
return config
|
return config
|
||||||
|
|
||||||
|
@ -659,7 +669,7 @@ class Builder:
|
||||||
|
|
||||||
if read_config:
|
if read_config:
|
||||||
output_dir = self.GetBuildDir(commit_upto, target)
|
output_dir = self.GetBuildDir(commit_upto, target)
|
||||||
for name in CONFIG_FILENAMES:
|
for name in self.config_filenames:
|
||||||
fname = os.path.join(output_dir, name)
|
fname = os.path.join(output_dir, name)
|
||||||
config[name] = self._ProcessConfig(fname)
|
config[name] = self._ProcessConfig(fname)
|
||||||
|
|
||||||
|
@ -736,8 +746,8 @@ class Builder:
|
||||||
line, board)
|
line, board)
|
||||||
last_was_warning = is_warning
|
last_was_warning = is_warning
|
||||||
last_func = None
|
last_func = None
|
||||||
tconfig = Config(board.target)
|
tconfig = Config(self.config_filenames, board.target)
|
||||||
for fname in CONFIG_FILENAMES:
|
for fname in self.config_filenames:
|
||||||
if outcome.config:
|
if outcome.config:
|
||||||
for key, value in outcome.config[fname].iteritems():
|
for key, value in outcome.config[fname].iteritems():
|
||||||
tconfig.Add(fname, key, value)
|
tconfig.Add(fname, key, value)
|
||||||
|
@ -1193,7 +1203,7 @@ class Builder:
|
||||||
arch_config_plus[arch] = {}
|
arch_config_plus[arch] = {}
|
||||||
arch_config_minus[arch] = {}
|
arch_config_minus[arch] = {}
|
||||||
arch_config_change[arch] = {}
|
arch_config_change[arch] = {}
|
||||||
for name in CONFIG_FILENAMES:
|
for name in self.config_filenames:
|
||||||
arch_config_plus[arch][name] = {}
|
arch_config_plus[arch][name] = {}
|
||||||
arch_config_minus[arch][name] = {}
|
arch_config_minus[arch][name] = {}
|
||||||
arch_config_change[arch][name] = {}
|
arch_config_change[arch][name] = {}
|
||||||
|
@ -1210,7 +1220,7 @@ class Builder:
|
||||||
tbase = self._base_config[target]
|
tbase = self._base_config[target]
|
||||||
tconfig = config[target]
|
tconfig = config[target]
|
||||||
lines = []
|
lines = []
|
||||||
for name in CONFIG_FILENAMES:
|
for name in self.config_filenames:
|
||||||
if not tconfig.config[name]:
|
if not tconfig.config[name]:
|
||||||
continue
|
continue
|
||||||
config_plus = {}
|
config_plus = {}
|
||||||
|
@ -1254,7 +1264,7 @@ class Builder:
|
||||||
all_plus = {}
|
all_plus = {}
|
||||||
all_minus = {}
|
all_minus = {}
|
||||||
all_change = {}
|
all_change = {}
|
||||||
for name in CONFIG_FILENAMES:
|
for name in self.config_filenames:
|
||||||
all_plus.update(arch_config_plus[arch][name])
|
all_plus.update(arch_config_plus[arch][name])
|
||||||
all_minus.update(arch_config_minus[arch][name])
|
all_minus.update(arch_config_minus[arch][name])
|
||||||
all_change.update(arch_config_change[arch][name])
|
all_change.update(arch_config_change[arch][name])
|
||||||
|
|
|
@ -59,6 +59,8 @@ def ParseArgs():
|
||||||
default=False, help='Keep all build output files (e.g. binaries)')
|
default=False, help='Keep all build output files (e.g. binaries)')
|
||||||
parser.add_option('-K', '--show-config', action='store_true',
|
parser.add_option('-K', '--show-config', action='store_true',
|
||||||
default=False, help='Show configuration changes in summary (both board config files and Kconfig)')
|
default=False, help='Show configuration changes in summary (both board config files and Kconfig)')
|
||||||
|
parser.add_option('--preserve-config-y', action='store_true',
|
||||||
|
default=False, help="Don't convert y to 1 in configs")
|
||||||
parser.add_option('-l', '--list-error-boards', action='store_true',
|
parser.add_option('-l', '--list-error-boards', action='store_true',
|
||||||
default=False, help='Show a list of boards next to each error/warning')
|
default=False, help='Show a list of boards next to each error/warning')
|
||||||
parser.add_option('--list-tool-chains', action='store_true', default=False,
|
parser.add_option('--list-tool-chains', action='store_true', default=False,
|
||||||
|
|
|
@ -259,7 +259,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
|
||||||
verbose_build=options.verbose_build,
|
verbose_build=options.verbose_build,
|
||||||
incremental=options.incremental,
|
incremental=options.incremental,
|
||||||
per_board_out_dir=options.per_board_out_dir,
|
per_board_out_dir=options.per_board_out_dir,
|
||||||
config_only=options.config_only)
|
config_only=options.config_only,
|
||||||
|
squash_config_y=not options.preserve_config_y)
|
||||||
builder.force_config_on_failure = not options.quick
|
builder.force_config_on_failure = not options.quick
|
||||||
if make_func:
|
if make_func:
|
||||||
builder.do_make = make_func
|
builder.do_make = make_func
|
||||||
|
|
Loading…
Reference in New Issue