summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2022-09-16 09:03:44 +1000
committerChris Johns <chrisj@rtems.org>2022-09-16 09:12:00 +1000
commit16d4f2c934b49482d4a4f570ecea2d025eeef00d (patch)
treec9083ac245738471450385774b03c68719aba0e9
parentsb/setbuilder: Do not install if --no-install option is used (diff)
downloadrtems-source-builder-16d4f2c934b49482d4a4f570ecea2d025eeef00d.tar.bz2
rtems/kernel: Support deployment standard buildset configs
- Check and optionally support arch/bsp format 'with_rtems_bsp' defines Updates #4717
-rw-r--r--rtems/config/tools/rtems-kernel-common.cfg49
1 files changed, 39 insertions, 10 deletions
diff --git a/rtems/config/tools/rtems-kernel-common.cfg b/rtems/config/tools/rtems-kernel-common.cfg
index 3a17a28..ea2e0ac 100644
--- a/rtems/config/tools/rtems-kernel-common.cfg
+++ b/rtems/config/tools/rtems-kernel-common.cfg
@@ -20,6 +20,43 @@
%endif
#
+# The BSP.
+#
+%if !%{defined with_rtems_bsp} && %{rtems_kernel_error}
+ %error No RTEMS BSP specified: --with-rtems-bsp=bsp
+%endif
+%define rtems_bsp %{with_rtems_bsp}
+
+#
+# If the BSP(s) have a '/' it is the arch/bsp notation.
+#
+%define is_arch_bsp %(echo %{rtems_bsp} | sed -e 's/.*\/.*/yes/g')
+%if %{is_arch_bsp} == yes
+ %define rtems_ab_bsps \
+ %(x=''; \
+ for b in %{rtems_bsp}; do x="$x "$(echo $b | sed -e 's/.*\///g'); done; \
+ echo $x)
+ %define rtems_ab_archs \
+ %(x=''; \
+ for b in %{rtems_bsp}; do x="$x "$(echo $b | sed -e 's/\/.*//g'); done; \
+ echo $x | tr ' ' '\n' | sort | uniq)
+ %define rtems_arch_count %(echo %{rtems_ab_archs} | tr ' ' '\n' | wc -l)
+ %if %{rtems_arch_count} != 1
+ %error Invalid BSP architecture count
+ %endif
+ %define rtems_bsp %{rtems_ab_bsps}
+ %define rtems_target %{rtems_ab_archs}-rtems%{rtems_version}
+ %define rtems_host %{rtems_target}
+%endif
+
+%define rtems_bsp_count %(echo %{rtems_bsp} | tr ' ' '\n' | wc -l)
+%if %{rtems_bsp_count} == 1
+ %define rtems_bsp_pkgname %{rtems_bsp}
+%else
+ %define rtems_bsp_pkgname bsps
+%endif
+
+#
# The target. It could be set in rtems_target.
#
%if %{defined rtems_target}
@@ -30,14 +67,6 @@
%endif
#
-# The BSP.
-#
-%if !%{defined with_rtems_bsp} && %{rtems_kernel_error}
- %error No RTEMS BSP specified: --with-rtems-bsp=bsp
-%endif
-%define rtems_bsp %{with_rtems_bsp}
-
-#
# If no tools are provided use the prefix.
#
%ifn %{defined with_tools}
@@ -52,12 +81,12 @@
#
# Define the package.
#
-package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp}-%{_host}-%{release}
+package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp_pkgname}-%{_host}-%{release}
#
# Package details.
#
-Name: %{_target}-kernel-%{rtems_bsp}-%{release}
+Name: %{_target}-kernel-%{rtems_bsp_pkgname}-%{release}
Summary: RTEMS v%{rtems_kernel_version} for target %{_target} BSP %{rtems_bsp}
Version: %{rtems_kernel_version}
Release: %{release}