[PATCH] rtems-bsps: Generate empty config.ini for arc/bsp combinations
chrisj at rtems.org
chrisj at rtems.org
Thu Oct 27 21:42:14 UTC 2022
From: Chris Johns <chrisj at rtems.org>
- Generate a config for all BSPs in an arch
---
rtems-bsps | 92 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 80 insertions(+), 12 deletions(-)
diff --git a/rtems-bsps b/rtems-bsps
index 8f3a887b9d..79ea745753 100755
--- a/rtems-bsps
+++ b/rtems-bsps
@@ -1,7 +1,7 @@
#! /usr/bin/env python
#
# RTEMS (http://www.rtems.org/)
-# Copyright 2020 Chris Johns (chrisj at rtems.org)
+# Copyright 2020, 2022 Chris Johns (chrisj at rtems.org)
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,10 @@ class ArchBsps:
def _out(self, line=''):
"""Output a line to the output buffer."""
- self._output += [line]
+ if isinstance(line, list):
+ self._output += line
+ else:
+ self._output += [line]
def _collect(self, ext):
"""Collect the config files from the source tree."""
@@ -266,7 +269,7 @@ class ArchBsps:
(max_bsp, bsp, max_fb, family, p))
else:
self._out('%-*s |%s' % (max_bsp, bsp, family))
-
+
def pairs(self, arch_selector=None, family_selector=None, show_path=False):
"""Generate output as pairs"""
self._clear()
@@ -290,11 +293,70 @@ class ArchBsps:
self.archs[arch][family][bsp])
pair = arch + '/' + bsp
pair = '%-*s %s' % (max_arch + max_bsp + 1, pair, p)
-
+
self._out(pair)
else:
self._out('%s/%s' % (arch, bsp))
+ def config(self, arch_selector=None, family_selector=None):
+ """Generate output as pairs"""
+ self._clear()
+ self._out(['# Generated by rtems-bsp',
+ '[DEFAULT]',
+ '# Build',
+ 'RTEMS_BUILD_LABEL = DEFAULT',
+ 'RTEMS_DEBUG = False',
+ 'RTEMS_PROFILING = False',
+ 'RTEMS_POSIX_API = True',
+ '# Tests',
+ 'BUILD_TESTS = False',
+ 'BUILD_BENCHMARKS = False',
+ 'BUILD_FSTESTS = False',
+ 'BUILD_LIBTESTS = False',
+ 'BUILD_MPTESTS = False',
+ 'BUILD_PSXTESTS = False',
+ 'BUILD_PSXTMTESTS = False',
+ 'BUILD_RHEALSTONE = False',
+ 'BUILD_SAMPLES = True',
+ 'BUILD_SMPTESTS = False',
+ 'BUILD_SPTESTS = False',
+ 'BUILD_TMTESTS = False',
+ 'BUILD_UNITTESTS = False',
+ 'BUILD_VALIDATIONTESTS = False',
+ 'RTEMS_TEST_VERBOSITY = Normal',
+ '# Compliler',
+ '; WARNING_FLAGS = -Wall',
+ '; CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs',
+ '; CXX_WARNING_FLAGS = ',
+ '; OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections',
+ '; BSP_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
+ '; CPUKIT_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
+ '; TEST_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
+ '; LINKFLAGS = ',
+ '; LDFLAGS = -Wl,--gc-sections',
+ '# BSP',
+ 'BSP_VERBOSE_FATAL_EXTENSION = 1',
+ 'BSP_PRINT_EXCEPTION_CONTEXT = 1',
+ 'BSP_RESET_BOARD_AT_EXIT = 1'])
+ self._out()
+ max_arch = self._max_arch_len()
+ max_bsp = self._max_bsp_len()
+ if arch_selector is None:
+ arch_matcher = []
+ else:
+ arch_matcher = [a.strip() for a in arch_selector.split(',')]
+ if family_selector is None:
+ family_matcher = []
+ else:
+ family_matcher = [f.strip() for f in family_selector.split(',')]
+ for arch in sorted(self.archs.keys()):
+ if arch_selector is None or arch in arch_matcher:
+ for family in sorted(self.archs[arch].keys()):
+ if family_selector is None or family in family_matcher:
+ for bsp in sorted(self.archs[arch][family].keys()):
+ self._out('[%s/%s]' % (arch, bsp))
+ self._out()
+
def run(args):
"""Runs the command"""
@@ -331,6 +393,10 @@ def run(args):
'--pairs',
help='Output architectures and BSPs in CPU/BSP format',
action='store_true')
+ argsp.add_argument('-C',
+ '--config',
+ help='Output architectures and BSPs in `config.ini` format',
+ action='store_true')
argopts = argsp.parse_args(args[1:])
@@ -345,15 +411,17 @@ def run(args):
family_selector=argopts.family,
show_path=argopts.paths,
show_title=argopts.title)
+ elif argopts.pairs:
+ ab.pairs(arch_selector=argopts.arch,
+ family_selector=argopts.family,
+ show_path=argopts.paths)
+ elif argopts.config:
+ ab.config(arch_selector=argopts.arch,
+ family_selector=argopts.family)
else:
- if argopts.pairs:
- ab.pairs(arch_selector=argopts.arch,
- family_selector=argopts.family,
- show_path=argopts.paths)
- else:
- ab.text(arch_selector=argopts.arch,
- family_selector=argopts.family,
- show_path=argopts.paths)
+ ab.text(arch_selector=argopts.arch,
+ family_selector=argopts.family,
+ show_path=argopts.paths)
print(os.linesep.join(ab.output()))
--
2.37.1
More information about the devel
mailing list