diff options
author | Chris Johns <chrisj@rtems.org> | 2019-07-12 08:25:15 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-07-21 21:09:34 +1000 |
commit | 8db33fbe434267d385e637a14f38d444c72254fa (patch) | |
tree | 618a7fe3a19cf0181b54e2aafdd0063b29bf02a2 /rtems/config/tools | |
parent | sb/config: Fix GDB probes when using python-config. (diff) | |
download | rtems-source-builder-8db33fbe434267d385e637a14f38d444c72254fa.tar.bz2 |
rtems: Add kernel, libbsd and BSP building as packages.
Diffstat (limited to 'rtems/config/tools')
-rw-r--r-- | rtems/config/tools/rtems-kernel-4-1.cfg | 179 | ||||
-rw-r--r-- | rtems/config/tools/rtems-kernel-5.cfg | 7 | ||||
-rw-r--r-- | rtems/config/tools/rtems-kernel-common.cfg | 229 | ||||
-rw-r--r-- | rtems/config/tools/rtems-libbsd-5.cfg | 13 | ||||
-rw-r--r-- | rtems/config/tools/rtems-libbsd-common.cfg | 79 | ||||
-rw-r--r-- | rtems/config/tools/rtems-tools-common-1.cfg | 15 |
6 files changed, 328 insertions, 194 deletions
diff --git a/rtems/config/tools/rtems-kernel-4-1.cfg b/rtems/config/tools/rtems-kernel-4-1.cfg index 8c725a5..26e7d9c 100644 --- a/rtems/config/tools/rtems-kernel-4-1.cfg +++ b/rtems/config/tools/rtems-kernel-4-1.cfg @@ -3,181 +3,4 @@ # # This configuration file configure's, make's and install's RTEMS. # - -%if %{rsb_released} - %define rtems_kernel_version %{rsb_version} -%else - %define rtems_kernel_version %{rtems_version} -%endif - -# -# Package details. -# -Name: %{_target}-kernel-%{rtems_kernel_version}-%{release} -Summary: RTEMS v%{rtems_kernel_version} for target %{_target} on host %{_host} -Version: %{rtems_kernel_version} -Release: %{release} -URL: http://www.rtems.org/ - -# -# Build if the RSB is released or optionally enable/disable building the RTEMS -# kernel via the command line. -# -%if %{rsb_released} || %{defined with_rtems} - %define rtems_kernel_build 1 -%else - %define rtems_kernel_build 0 -%endif -%if %{defined without_rtems} - %define rtems_kernel_build 0 -%endif - -%if %{rtems_kernel_build} - %include %{_configdir}/checks.cfg - %include %{_configdir}/base.cfg - %include %{_configdir}/versions.cfg - - # - # A magic internal path that would break if changes in the defaults.mc - # macro file are made. - # - %define _internal_autotools_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN} - - # - # Check the version of autoconf. Check autoreconf as it is used. - # - %if %{__autoreconf_ver} <= 2.68 - %if %{__autoreconf_bindir_ver} <= 2.68 - %if %{__autoreconf_path_ver} <= 2.68 - %error Autoconf (autoreconf) version 2.69 or higher is needed. - %endif - %endif - %endif - - # - # Source - # - %if %{rsb_released} - %if ! %{defined rtems_kernel_compression} - %define rtems_kernel_compression xz - %endif - %define rtems_kernel_version %{rtems_version} - %define rtems_bootstrap 0 - %else - # - # The code in git needs to be bootstrapped. Do each build because we have - # no way to change what changes may have happened in the code. - # - %define rtems_bootstrap 1 - %endif - - %if ! %{defined rtems_kernel_version} - %define rtems_kernel_version HEAD - %endif - %if %{defined rtems_kernel_git_commit_hash} - %define rtems_kernel_git_checkout ?checkout=%{defined rtems_kernel_git_commit_hash} - %else - %define rtems_kernel_git_checkout %{nil} - %endif - - %source set rtems git://git.rtems.org/rtems.git?reset=hard?branch=%{rtems_kernel_version}?pull%{rtems_kernel_git_checkout} # - # If C++ defined for the tool set use it to control RTEMS's setting.. - # - %if %{defined enable_cxx} - %define rtems_cxx %{enable_cxx} - %endif - - # - # Default set up. - # - %ifn %{defined rtems_posix} - %define rtems_posix 1 - %endif - %ifn %{defined rtems_networking} - %define rtems_networking 1 - %endif - %ifn %{defined rtems_cxx} - %define rtems_cxx 1 - %endif - %ifn %{defined rtems_tests} - %define rtems_tests samples - %endif - - %if %{rtems_tests} == disable - %define rtems_tests_opt --disable-tests - %else - %define rtems_tests_opt --enable-tests=%{rtems_tests} - %endif - - # - # Check the various --with/--without options we support. - # - # --with-rtemsbsp : Supported, list of BSPs - # --without-rtemsbsp: Not supported - # --with-tests : Supported, samples/yes/no - # --without-tests : Not supported - # --with-smp : Supported - # --without-smp : Not care - # - # - %if %{defined without_rtemsbsp} - %error Option --without-rtemsbsp is not supported. - %endif - %if %{defined without_rtems_tests} - %define with_rtems_tests no - %endif - - # - # Prepare the source code. - # - %prep - source_dir_rtems="rtems-%{rtems_kernel_version}" - %source setup rtems -q -c -n %{name}-%{version} - cd ${source_dir_rtems} - %patch setup rtems -p1 - %if %{rtems_bootstrap} - %if %{defined _internal_autotools_path} - export PATH="%{_internal_autotools_path}/bin:${PATH}" - %endif - ./bootstrap -c - %{_sbdir}/sb-bootstrap --preinstall - %{_sbdir}/sb-bootstrap - %endif - cd .. - - %build - # Build directory support. - if test "%{_build}" != "%{_host}" ; then - build_dir="build-cxc" - else - build_dir="build" - fi - mkdir -p ${build_dir} - cd ${build_dir} - - ../${source_dir_rtems}/configure \ - --build=%{_build} --host=%{_host} \ - --target=%{_target} \ - %{?rtems_posix:--enable-posix}%{!?rtems_posix:--disable-posix} \ - %{?rtems_networking:--enable-networking}%{!?rtems_networking:--disable-networking} \ - %{?rtems_cxx:--enable-cxx}%{!?rtems_cxx:--disable-cxx} \ - %{?with_rtems_tests:--enable-tests=%{with_rtems_tests}} \ - %{?with_rtemsbsp:--enable-rtemsbsp="%{with_rtemsbsp}"} \ - %{?with_rtems_smp:--enable-smp} \ - --prefix=%{_prefix} --bindir=%{_bindir} \ - --exec-prefix=%{_exec_prefix} \ - --includedir=%{_includedir} --libdir=%{_libdir} \ - --mandir=%{_mandir} --infodir=%{_infodir} - - %{__make} %{?_smp_mflags} all - cd .. - - %install - %{__rmdir} $SB_BUILD_ROOT - - cd ${build_dir} - %{__make} DESTDIR=$SB_BUILD_ROOT install - - cd .. - -%endif +%include tools/rtems-kernel-common.cfg diff --git a/rtems/config/tools/rtems-kernel-5.cfg b/rtems/config/tools/rtems-kernel-5.cfg index 5d5d654..7f23635 100644 --- a/rtems/config/tools/rtems-kernel-5.cfg +++ b/rtems/config/tools/rtems-kernel-5.cfg @@ -2,7 +2,10 @@ # RTEMS 5 # +%define rtems_kernel_version c4d89deaa66f9878ea5499cae7210d5815afc4fe +%hash sha512 rtems-kernel-%{rtems_kernel_version}.tar.bz2 fa4cbcfd9d10be737b91805f1fbaccb7289f3d300a2a7aafef1713d265dd97242d00aba5f1c63ead5a889cfb2148fd9d62c79dcb6f16e61f9fa1290067159b43 + # -# The RTEMS build instructions. We use 4.xx Release 1. +# The RTEMS build instructions. # -%include tools/rtems-kernel-4-1.cfg +%include tools/rtems-kernel-common.cfg diff --git a/rtems/config/tools/rtems-kernel-common.cfg b/rtems/config/tools/rtems-kernel-common.cfg new file mode 100644 index 0000000..5a79340 --- /dev/null +++ b/rtems/config/tools/rtems-kernel-common.cfg @@ -0,0 +1,229 @@ +# +# RTEMS Kernel. +# +# This configuration file configure's, make's and install's RTEMS. +# + +# +# If a dry-run and with download ignore errors and correct setting for tools +# and BSPs. Only after the source to download. +# +%if %{_dry_run} && %{defined with_download} + %log Kenrel configuration errors ignored + %define rtems_kernel_error 0 +%else + %define rtems_kernel_error 1 +%endif + +%if %{rsb_released} + %define rtems_kernel_version %{rsb_version} +%endif + +# +# The target. It could be set in rtems_target. +# +%if %{defined rtems_target} + %define _target %{rtems_target} +%endif +%if %{_target} == %{nil} && %{rtems_kernel_error} + %error No RTEMS target specified: --target=<arch>-rtems<ver>. +%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} + %define with_tools %{_prefix} +%endif + +# +# Set the path to the tools. +# +%{path prepend %{with_tools}/bin} + +# +# Define the package. +# +package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp}-%{_host}-%{release} + +# +# Package details. +# +Name: %{_target}-kernel-%{rtems_bsp}-%{release} +Summary: RTEMS v%{rtems_kernel_version} for target %{_target} BSP %{rtems_bsp} +Version: %{rtems_kernel_version} +Release: %{release} +URL: https://www.rtems.org/ + +%include %{_configdir}/checks.cfg +%include %{_configdir}/base.cfg +%include %{_configdir}/versions.cfg + +# +# A magic internal path that would break if changes in the defaults.mc +# macro file are made. +# +%define _internal_autotools_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN} + +# +# Check the version of autoconf. Check autoreconf as it is used. +# +%if %{__autoreconf_ver} <= 2.68 + %if %{__autoreconf_bindir_ver} <= 2.68 + %if %{__autoreconf_path_ver} <= 2.68 + %error Autoconf (autoreconf) version 2.69 or higher is needed. + %endif + %endif +%endif + +# +# If no tools provided use the prefix. +# +%ifn %{defined with_tools} + %define with_tools %{_prefix} +%endif + +# +# Check options. +# +%if %{defined without_rtems_posix} + %define rtems_posix 0 +%endif + +%if %{defined with_rtems_legacy_network} + %define rtems_networking 1 +%endif + +%if %{defined with_rtems_cxx} + %define rtems_cxx 1 +%endif + +# +# Source +# +%if %{rsb_released} + %if ! %{defined rtems_kernel_compression} + %define rtems_kernel_compression xz + %endif + %define rtems_kernel_version %{rtems_version} + %define rtems_bootstrap 0 +%else + # + # The code in git needs to be bootstrapped. Do each build because we have + # no way to change what changes may have happened in the code. + # + %define rtems_bootstrap 1 +%endif + +%if ! %{defined rtems_kernel_version} + %error No RTEMS kernel version defined +%endif + +%source set rtems_kernel --rsb-file=rtems-kernel-%{rtems_kernel_version}.tar.bz2 https://git.rtems.org/rtems/snapshot/rtems-%{rtems_kernel_version}.tar.bz2 + +# If C++ defined for the tool set use it to control RTEMS's setting.. +# +%if %{defined enable_cxx} + %define rtems_cxx %{enable_cxx} +%endif + +# +# Default set up. +# +%ifn %{defined rtems_posix} + %define rtems_posix 1 +%endif +%ifn %{defined rtems_networking} + %define rtems_networking 0 +%endif +%ifn %{defined rtems_cxx} + %define rtems_cxx 0 +%endif +%ifn %{defined rtems_tests} + %define rtems_tests samples +%endif + +%if %{rtems_tests} == disable + %define rtems_tests_opt --disable-tests +%else + %define rtems_tests_opt --enable-tests=%{rtems_tests} +%endif + +# +# Check the various --with/--without options we support. +# +# --target : The architecture +# --with-rtems-bsp : The BSP +# --with-tests : Supported, samples/yes/no +# --without-tests : Not supported +# --with-smp : Supported +# --without-smp : Not care +# +# +%if %{defined without_rtemsbsp} + %error Option --without-rtemsbsp is not supported. +%endif +%if %{defined without_rtems_tests} + %define with_rtems_tests no +%endif + +# +# Prepare the source code. +# +%prep + source_dir_rtems="rtems-%{rtems_kernel_version}" + %source setup rtems_kernel -q -c -n %{name}-%{version} + cd ${source_dir_rtems} + %patch setup rtems -p1 +%if %{rtems_bootstrap} + %if %{defined _internal_autotools_path} + export PATH="%{_internal_autotools_path}/bin:${PATH}" + %endif + ./bootstrap -c + %{_sbdir}/sb-bootstrap --preinstall + %{_sbdir}/sb-bootstrap +%endif + cd .. + +%build + # Build directory support. + if test "%{_build}" != "%{_host}" ; then + build_dir="build-cxc" + else + build_dir="build" + fi + mkdir -p ${build_dir} + cd ${build_dir} + + ../${source_dir_rtems}/configure \ + --build=%{_build} --host=%{_host} \ + --target=%{_target} \ + --enable-rtemsbsp="%{rtems_bsp}" \ + %{?rtems_posix:--enable-posix}%{!?rtems_posix:--disable-posix} \ + %{?rtems_networking:--enable-networking}%{!?rtems_networking:--disable-networking} \ + %{?rtems_cxx:--enable-cxx}%{!?rtems_cxx:--disable-cxx} \ + %{?with_rtems_tests:--enable-tests=%{with_rtems_tests}} \ + %{?with_rtems_smp:--enable-smp} \ + --prefix=%{_prefix} --bindir=%{_bindir} \ + --exec-prefix=%{_exec_prefix} \ + --includedir=%{_includedir} --libdir=%{_libdir} \ + --mandir=%{_mandir} --infodir=%{_infodir} + + %{__make} %{?_smp_mflags} all + cd .. + +%install + %{__rmdir} $SB_BUILD_ROOT + + cd ${build_dir} + %{__make} DESTDIR=$SB_BUILD_ROOT install + + cd .. diff --git a/rtems/config/tools/rtems-libbsd-5.cfg b/rtems/config/tools/rtems-libbsd-5.cfg new file mode 100644 index 0000000..8f0141b --- /dev/null +++ b/rtems/config/tools/rtems-libbsd-5.cfg @@ -0,0 +1,13 @@ +# +# RTEMS 5 LibBSD +# + +%define rtems_libbsd_version 313e1d5f1c8c7cd8e3d458628b040ce1c264d23c +%hash sha512 rtems-libbsd-%{rtems_libbsd_version}.tar.bz2 1282b46eacbda01fc3eb3d3fc67c5a0d02d07f3d097b381133ad823bdbdd920c95e9faabb5430f1634ac3f1b4c797850d3a0d6a4b2aa523e677d65fe82a036a3 +%define rtems_waf_version ad6c6e8771b95dffa73a7dc1167d98d208f17cb0 +%hash sha512 rtems-waf-%{rtems_waf_version}.tar.bz2 9866ab0772cbd3aa4e641a14fad2c85acf79d8e6e08de05c32e985bb76b9f04a0a615093320b406ff4660ec1964f2c0778453b44a8b1358c6f04ccd7561cad1c + +# +# The RTEMS LibBSD build instructions. +# +%include tools/rtems-libbsd-common.cfg diff --git a/rtems/config/tools/rtems-libbsd-common.cfg b/rtems/config/tools/rtems-libbsd-common.cfg new file mode 100644 index 0000000..4503e1b --- /dev/null +++ b/rtems/config/tools/rtems-libbsd-common.cfg @@ -0,0 +1,79 @@ +# +# RTEMS LibBSD +# +# This configuration file configure's, build's and install's libbsd.a. +# + +%if %{release} == %{nil} +%define release 1 +%endif + +Name: rtems-libbsd-v%{rtems_libbsd_version}-%{_host}-%{release} +Summary: RTEMS LibBSD provides libbsd, a FreeBSD kernel set of + services for RTEMS. +Version: %{rtems_libbsd_version} +Release: %{release} +URL: https://git.rtems.org/rtems-libbsd.git/ + +# +# LibBSD is packaged as the release version when released. +# +%if %{rsb_released} + %define rtems_libbsd_version %{rsb_version} +%endif + +# +# RTEMS BSP support. +# +%include rtems-bsp.cfg + +# +# LibBSD Source. +# +# Collect and install rtems_waf as cgit snapshots to not caputre submodules, +# which is a good thing because we would collect the entire FreeBSD source + +# +%source set rtems_libbsd https://git.rtems.org/rtems-libbsd/snapshot/rtems-libbsd-%{rtems_libbsd_version}.tar.bz2 +%source set rtems_waf https://git.rtems.org/rtems_waf/snapshot/rtems_waf-%{rtems_waf_version}.tar.bz2 + +# +# Prepare the source code. +# +%prep + build_top=$(pwd) + + source_dir_libbsd="rtems-libbsd-%{rtems_libbsd_version}" + %source setup rtems_libbsd -q -n rtems-libbsd-%{rtems_libbsd_version} + %source setup rtems_waf -q -s 1 -c -a -n rtems-libbsd-%{rtems_libbsd_version}/rtems_waf + + cd ${build_top} + +# +# Build the source code. +# +%build + build_top=$(pwd) + + %{host_build_flags} + + cd ${source_dir_libbsd} + + ./waf distclean configure \ + --prefix=%{_prefix} \ + %{rtems_waf_tools} \ + %{rtems_waf_rtems} + --rtems-bsp=%{rtems_bsp_arch_bsp} + + ./waf build + + cd ${build_top} + +%install + build_top=$(pwd) + + %{__rmdir} ${SB_BUILD_ROOT} + + cd ${source_dir_libbsd} + ./waf --destdir=$SB_BUILD_ROOT%{rtems_waf_build_root_suffix} install + cd ${build_top} diff --git a/rtems/config/tools/rtems-tools-common-1.cfg b/rtems/config/tools/rtems-tools-common-1.cfg index b15fbce..c15f514 100644 --- a/rtems/config/tools/rtems-tools-common-1.cfg +++ b/rtems/config/tools/rtems-tools-common-1.cfg @@ -58,19 +58,6 @@ License: BSD-2-Clause + GPL-2.0 %{__rmdir} $SB_BUILD_ROOT - # - # If on Windows we need to add the driver prefix to the built root as waf - # strips the driver prefix from the prefix path when joining it to the - # destdir path. Waf is correct in doing this and the RSB is design to match - # the configure behaviour which treats the whole path including the drive - # prefix as part of the path as just a path. - # - %ifos win32 mingw ming32 - SB_BUILD_ROOT_WAF=$SB_BUILD_ROOT$(echo %{_prefix} | cut -c 1-2) - %else - SB_BUILD_ROOT_WAF=$SB_BUILD_ROOT - %endif - cd ${source_dir_rtems_tools} - ./waf --destdir=$SB_BUILD_ROOT_WAF install + ./waf --destdir=$SB_BUILD_ROOT%{rtems_waf_build_root_suffix} install cd ${build_top} |