blob: 28d250f002b0f8a414de979e0eeec4726718894a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#
# RTEMS BSP Support
#
#
# The RTEMS BSP support requires the host turple, the RTEMS BSP and the path to
# the tools. The prefix is set to an installed RTEMS. The built package is
# installed into the prefix.
#
# Keeping the package's installed path in the RTEMS install path and separate
# to the tools lets the tools version vary independently. If --rtems-tools
# (--with-tools) is not provided use the prefix.
#
#
# 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 BSP configuration errors ignored
%define rtems_bsp_error 0
%else
%define rtems_bsp_error 1
%endif
%if %{_target} == %{nil} && %{rtems_bsp_error}
%error No RTEMS target specified: --rtems-bsp=arch/bsp (or --target=target)
%endif
%if %{_host} != %{_build}
%error Canadian cross building for BSP is not supported.
%endif
%ifn %{defined with_rtems_bsp}
%if %{rtems_bsp_error}
%error No RTEMS BSP specified: --rtems-bsp=arch/bsp (or --with-rtems-bsp=bsp)
%endif
%define with_rtems_bsp sparc/erc32
%endif
%ifn %{defined with_tools}
%define with_tools %{_prefix}
%endif
#
# Set the host to the target.
#
%define _host %{_target}
#
# Set the path to the tools.
#
%{path prepend %{with_tools}/bin}
#
# Set up how we manage pkgconfig. Set the prefix path to the RTEMS prefix,
# enable support when crosscompiling, and filter specific optimisation and
# warning from the flags that RTEMS exports.
#
%{pkgconfig prefix %{_prefix}/lib/pkgconfig}
%{pkgconfig crosscompile yes}
%{pkgconfig filter-flags yes}
#
# The RTEMS BSP Flags
#
%define rtems_bsp %{with_rtems_bsp}
%define rtems_bsp_ccflags %{pkgconfig ccflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_cflags %{pkgconfig cflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_ldflags %{pkgconfig ldflags %{_host}-%{rtems_bsp}}
%define rtems_bsp_libs %{pkgconfig libs %{_host}-%{rtems_bsp}}
%if %{rtems_bsp_cflags} == %{nil} && %{rtems_bsp_error}
%error No RTEMS target CFLAGS found; Please check the --rtems-bsp option.
%endif
%if %{rtems_bsp_ccflags} == %{nil}
%define rtems_bsp_ccflags %{rtems_bsp_cflags}
%endif
#
# Update the configure paths to be BSP specific.
#
%define rtems_bsp_prefix %{_prefix}/%{_host}/%{rtems_bsp}
%define _exec_prefix %{rtems_bsp_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_exec_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_exec_prefix}/etc
%define _sharedstatedir %{_exec_prefix}/com
%define _localstatedir %{_exec_prefix}/var
%define _includedir %{_libdir}/include
%define _lib lib
%define _libdir %{_exec_prefix}/%{_lib}
%define _libexecdir %{_exec_prefix}/libexec
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%define _localedir %{_datadir}/locale
%define _localstatedir %{_exec_prefix}/var
#
# Map to names used for cross compiling.
#
%define host_includes -I%{_includedir}
%define host_cflags %{rtems_bsp_cflags}
%define host_cxxflags %{rtems_bsp_ccflags}
%define host_ldflags %{rtems_bsp_ldflags}
%define host_libs %{rtems_bsp_libs}
|