diff options
Diffstat (limited to 'rtems/config/tools/rtems-kernel-common.cfg')
-rw-r--r-- | rtems/config/tools/rtems-kernel-common.cfg | 49 |
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} |