source: rtems-source-builder/rtems/config/tools/rtems-kernel-common.cfg @ 8db33fb

5
Last change on this file since 8db33fb was 8db33fb, checked in by Chris Johns <chrisj@…>, on 07/11/19 at 22:25:15

rtems: Add kernel, libbsd and BSP building as packages.

  • Property mode set to 100644
File size: 5.1 KB
Line 
1#
2# RTEMS Kernel.
3#
4# This configuration file configure's, make's and install's RTEMS.
5#
6
7#
8# If a dry-run and with download ignore errors and correct setting for tools
9# and BSPs. Only after the source to download.
10#
11%if %{_dry_run} && %{defined with_download}
12 %log Kenrel configuration errors ignored
13 %define rtems_kernel_error 0
14%else
15 %define rtems_kernel_error 1
16%endif
17
18%if %{rsb_released}
19 %define rtems_kernel_version %{rsb_version}
20%endif
21
22#
23# The target. It could be set in rtems_target.
24#
25%if %{defined rtems_target}
26 %define _target %{rtems_target}
27%endif
28%if %{_target} == %{nil} && %{rtems_kernel_error}
29 %error No RTEMS target specified: --target=<arch>-rtems<ver>.
30%endif
31
32#
33# The BSP.
34#
35%if !%{defined with_rtems_bsp} && %{rtems_kernel_error}
36 %error No RTEMS BSP specified: --with-rtems-bsp=bsp
37%endif
38%define rtems_bsp %{with_rtems_bsp}
39
40#
41# If no tools are provided use the prefix.
42#
43%ifn %{defined with_tools}
44 %define with_tools %{_prefix}
45%endif
46
47#
48# Set the path to the tools.
49#
50%{path prepend %{with_tools}/bin}
51
52#
53# Define the package.
54#
55package: rtems-%{rtems_version}-%{_target}-%{rtems_bsp}-%{_host}-%{release}
56
57#
58# Package details.
59#
60Name:    %{_target}-kernel-%{rtems_bsp}-%{release}
61Summary: RTEMS v%{rtems_kernel_version} for target %{_target} BSP %{rtems_bsp}
62Version: %{rtems_kernel_version}
63Release: %{release}
64URL:     https://www.rtems.org/
65
66%include %{_configdir}/checks.cfg
67%include %{_configdir}/base.cfg
68%include %{_configdir}/versions.cfg
69
70#
71# A magic internal path that would break if changes in the defaults.mc
72# macro file are made.
73#
74%define _internal_autotools_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN}
75
76#
77# Check the version of autoconf. Check autoreconf as it is used.
78#
79%if %{__autoreconf_ver} <= 2.68
80 %if %{__autoreconf_bindir_ver} <= 2.68
81  %if %{__autoreconf_path_ver} <= 2.68
82   %error Autoconf (autoreconf) version 2.69 or higher is needed.
83  %endif
84 %endif
85%endif
86
87#
88# If no tools provided use the prefix.
89#
90%ifn %{defined with_tools}
91 %define with_tools %{_prefix}
92%endif
93
94#
95# Check options.
96#
97%if %{defined without_rtems_posix}
98 %define rtems_posix 0
99%endif
100
101%if %{defined with_rtems_legacy_network}
102 %define rtems_networking 1
103%endif
104
105%if %{defined with_rtems_cxx}
106 %define rtems_cxx 1
107%endif
108
109#
110# Source
111#
112%if %{rsb_released}
113 %if ! %{defined rtems_kernel_compression}
114  %define rtems_kernel_compression xz
115 %endif
116 %define rtems_kernel_version %{rtems_version}
117 %define rtems_bootstrap 0
118%else
119 #
120 # The code in git needs to be bootstrapped. Do each build because we have
121 # no way to change what changes may have happened in the code.
122 #
123 %define rtems_bootstrap 1
124%endif
125
126%if ! %{defined rtems_kernel_version}
127 %error No RTEMS kernel version defined
128%endif
129
130%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
131
132# If C++ defined for the tool set use it to control RTEMS's setting..
133#
134%if %{defined enable_cxx}
135 %define rtems_cxx %{enable_cxx}
136%endif
137
138#
139# Default set up.
140#
141%ifn %{defined rtems_posix}
142 %define rtems_posix 1
143%endif
144%ifn %{defined rtems_networking}
145 %define rtems_networking 0
146%endif
147%ifn %{defined rtems_cxx}
148 %define rtems_cxx 0
149%endif
150%ifn %{defined rtems_tests}
151 %define rtems_tests samples
152%endif
153
154%if %{rtems_tests} == disable
155 %define rtems_tests_opt --disable-tests
156%else
157 %define rtems_tests_opt --enable-tests=%{rtems_tests}
158%endif
159
160#
161# Check the various --with/--without options we support.
162#
163# --target          : The architecture
164# --with-rtems-bsp  : The BSP
165# --with-tests      : Supported, samples/yes/no
166# --without-tests   : Not supported
167# --with-smp        : Supported
168# --without-smp     : Not care
169#
170#
171%if %{defined without_rtemsbsp}
172 %error Option --without-rtemsbsp is not supported.
173%endif
174%if %{defined without_rtems_tests}
175 %define with_rtems_tests no
176%endif
177
178#
179# Prepare the source code.
180#
181%prep
182  source_dir_rtems="rtems-%{rtems_kernel_version}"
183  %source setup rtems_kernel -q -c -n %{name}-%{version}
184  cd ${source_dir_rtems}
185  %patch setup rtems -p1
186%if %{rtems_bootstrap}
187  %if %{defined _internal_autotools_path}
188    export PATH="%{_internal_autotools_path}/bin:${PATH}"
189  %endif
190  ./bootstrap -c
191  %{_sbdir}/sb-bootstrap --preinstall
192  %{_sbdir}/sb-bootstrap
193%endif
194  cd ..
195
196%build
197  # Build directory support.
198  if test "%{_build}" != "%{_host}" ; then
199    build_dir="build-cxc"
200  else
201    build_dir="build"
202  fi
203  mkdir -p ${build_dir}
204  cd ${build_dir}
205
206  ../${source_dir_rtems}/configure \
207    --build=%{_build} --host=%{_host} \
208    --target=%{_target} \
209    --enable-rtemsbsp="%{rtems_bsp}" \
210    %{?rtems_posix:--enable-posix}%{!?rtems_posix:--disable-posix} \
211    %{?rtems_networking:--enable-networking}%{!?rtems_networking:--disable-networking} \
212    %{?rtems_cxx:--enable-cxx}%{!?rtems_cxx:--disable-cxx} \
213    %{?with_rtems_tests:--enable-tests=%{with_rtems_tests}} \
214    %{?with_rtems_smp:--enable-smp} \
215    --prefix=%{_prefix} --bindir=%{_bindir} \
216    --exec-prefix=%{_exec_prefix} \
217    --includedir=%{_includedir} --libdir=%{_libdir} \
218    --mandir=%{_mandir} --infodir=%{_infodir}
219
220  %{__make} %{?_smp_mflags} all
221  cd ..
222
223%install
224  %{__rmdir} $SB_BUILD_ROOT
225
226  cd ${build_dir}
227  %{__make} DESTDIR=$SB_BUILD_ROOT install
228
229  cd ..
Note: See TracBrowser for help on using the repository browser.