summaryrefslogtreecommitdiffstats
path: root/rtems/config/tools
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2019-07-12 08:25:15 +1000
committerChris Johns <chrisj@rtems.org>2019-07-21 21:09:34 +1000
commit8db33fbe434267d385e637a14f38d444c72254fa (patch)
tree618a7fe3a19cf0181b54e2aafdd0063b29bf02a2 /rtems/config/tools
parentsb/config: Fix GDB probes when using python-config. (diff)
downloadrtems-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.cfg179
-rw-r--r--rtems/config/tools/rtems-kernel-5.cfg7
-rw-r--r--rtems/config/tools/rtems-kernel-common.cfg229
-rw-r--r--rtems/config/tools/rtems-libbsd-5.cfg13
-rw-r--r--rtems/config/tools/rtems-libbsd-common.cfg79
-rw-r--r--rtems/config/tools/rtems-tools-common-1.cfg15
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}