aboutsummaryrefslogtreecommitdiff
path: root/tools/buildman
diff options
context:
space:
mode:
authorSimon Glass2023-07-19 17:49:30 -0600
committerSimon Glass2023-07-24 09:34:11 -0600
commitba8d099b95f2125605e26316f7187a33495bb82c (patch)
tree653dfa8de66381adbe3f21b54d5dab00b0814623 /tools/buildman
parent39dbcaa1ad5a217e36678a1632c1e1ffa6bb82e2 (diff)
buildman: Add an option to check maintainers and targets
In poking around it seems that many boards don't define a CONFIG_TARGET Kconfig variable. This is not strictly necessary, but add an option to buildman so these can be viewed. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/buildman.rst4
-rw-r--r--tools/buildman/cmdline.py3
-rw-r--r--tools/buildman/control.py14
3 files changed, 16 insertions, 5 deletions
diff --git a/tools/buildman/buildman.rst b/tools/buildman/buildman.rst
index 2220806accd..aae2477b5c3 100644
--- a/tools/buildman/buildman.rst
+++ b/tools/buildman/buildman.rst
@@ -1324,6 +1324,10 @@ Use the `--maintainer-check` option to check this::
Buildman returns with an exit code of 2 if there area any warnings.
+An experimental `--full-check option` also checks for boards which don't have a
+CONFIG_TARGET_xxx where xxx corresponds to their defconfig filename. This is
+not strictly necessary, but may be useful information.
+
Checking the command
--------------------
diff --git a/tools/buildman/cmdline.py b/tools/buildman/cmdline.py
index 4331fbdab31..052e223597c 100644
--- a/tools/buildman/cmdline.py
+++ b/tools/buildman/cmdline.py
@@ -60,6 +60,9 @@ def add_upto_m(parser):
help="Fetch a toolchain for architecture FETCH_ARCH ('list' to list)."
' You can also fetch several toolchains separate by comma, or'
" 'all' to download all")
+ parser.add_argument(
+ '--full-check', action='store_true',
+ help='Check maintainer entries and TARGET configs')
parser.add_argument('-g', '--git', type=str,
help='Git repo containing branch to build', default='.')
parser.add_argument('-G', '--config-file', type=str,
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index c96018252a5..5c5720034b6 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -365,8 +365,8 @@ def get_toolchains(toolchains, col, override_toolchain, fetch_arch,
return toolchains
-def get_boards_obj(output_dir, regen_board_list, maintainer_check, threads,
- verbose):
+def get_boards_obj(output_dir, regen_board_list, maintainer_check, full_check,
+ threads, verbose):
"""Object the Boards object to use
Creates the output directory and ensures there is a boards.cfg file, then
@@ -376,6 +376,8 @@ def get_boards_obj(output_dir, regen_board_list, maintainer_check, threads,
output_dir (str): Output directory to use
regen_board_list (bool): True to just regenerate the board list
maintainer_check (bool): True to just run a maintainer check
+ full_check (bool): True to just run a full check of Kconfig and
+ maintainers
threads (int or None): Number of threads to use to create boards file
verbose (bool): False to suppress output from boards-file generation
@@ -386,8 +388,9 @@ def get_boards_obj(output_dir, regen_board_list, maintainer_check, threads,
"""
brds = boards.Boards()
nr_cpus = threads or multiprocessing.cpu_count()
- if maintainer_check:
- warnings = brds.build_board_list(jobs=nr_cpus)[1]
+ if maintainer_check or full_check:
+ warnings = brds.build_board_list(jobs=nr_cpus,
+ warn_targets=full_check)[1]
if warnings:
for warn in warnings:
print(warn, file=sys.stderr)
@@ -614,7 +617,8 @@ def do_buildman(args, toolchains=None, make_func=None, brds=None,
# Work out what subset of the boards we are building
if not brds:
brds = get_boards_obj(output_dir, args.regen_board_list,
- args.maintainer_check, args.threads, args.verbose)
+ args.maintainer_check, args.full_check,
+ args.threads, args.verbose)
if isinstance(brds, int):
return brds