rtems/kernel: Support deployment standard buildset configs

- Check and optionally support arch/bsp format 'with_rtems_bsp' defines

Updates #4717
This commit is contained in:
Chris Johns 2022-09-16 09:03:44 +10:00
parent 25972d9082
commit 16d4f2c934

View File

@ -19,6 +19,43 @@
%define rtems_kernel_version %{rsb_version} %define rtems_kernel_version %{rsb_version}
%endif %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. # The target. It could be set in rtems_target.
# #
@ -29,14 +66,6 @@
%error No RTEMS target specified: --target=<arch>-rtems<ver>. %error No RTEMS target specified: --target=<arch>-rtems<ver>.
%endif %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. # If no tools are provided use the prefix.
# #
@ -52,12 +81,12 @@
# #
# Define the package. # Define the package.
# #
package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp}-%{_host}-%{release} package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp_pkgname}-%{_host}-%{release}
# #
# Package details. # 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} Summary: RTEMS v%{rtems_kernel_version} for target %{_target} BSP %{rtems_bsp}
Version: %{rtems_kernel_version} Version: %{rtems_kernel_version}
Release: %{release} Release: %{release}