blob: adfb3e665be5c51aec587790bc914c99923d2e02 (
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
%define binutils_version @binutils_version@
%define binutils_target @target_alias@
Name: @rpmprefix@%{binutils_target}-binutils
Summary: Binutils for target %{binutils_target}
Group: %{rpmgroup}
Version: %{binutils_version}
Release: @Release@
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if "%{_prefix}" != "/usr"
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-%{binutils_version}@binutils_suffix@
@PATCH1@
#
# The original sources are not included in the source RPM.
# If we included them, then the source RPMs for each target
# would duplicate MBs of source unnecessarily. This is
# a duplication of over 30 MBs of source for each of
# the more than 10 targets it is possible to build.
#
# You can get them yourself from the Internet and copy them to
# your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR).
# Or you can try the ftp options of rpm :-)
#
%{?!_with_sources:NoSource: 0}
# %description
#
# RTEMS is an open source operating system for embedded systems.
#
# This is binutils sources with patches for RTEMS.
%prep
%setup -c -T -n %{name}-%{version} -a0
%if "%{_prefix}" != "/usr"
# Extract %%__os_install_post into os_install_post~
cat << \EOF >> os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
%if "%{_prefix}" != "/usr"
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,./%{_prefix},' < $a > $b
chmod a+x $b
;;
%endif
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%endif
cd binutils-%{version}
%{?PATCH0:%patch0 -p1}
cd ..
%build
mkdir -p build
cd build
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_version}/configure \
--build=%_build --host=%_host \
--target=%{binutils_target} \
--verbose --disable-nls \
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir} \
make all
%if "%{_prefix}" != "/usr"
make info
%endif
cd ..
%install
rm -rf $RPM_BUILD_ROOT
cd build
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
install
%if "%{_prefix}" != "/usr"
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
install-info
%endif
%if "%{_prefix}" == "/usr"
# Conflict with a native binutils' infos
rm -rf $RPM_BUILD_ROOT%{_infodir}
%else
%if "%{binutils_version}" < "2.9.5"
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
%endif
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
%endif
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-dlltool*
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-nlmconv*
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/%{binutils_target}-windres*
cd ..
|