]> git.pld-linux.org Git - packages/crossarm-gcc.git/blob - crossarm-gcc.spec
a9976bed43788b8c9d51cb336ed850488fa7297d
[packages/crossarm-gcc.git] / crossarm-gcc.spec
1 #
2 # MUST SEE:
3 #               - GCC ARM Improvement Project - http://www.inf.u-szeged.hu/gcc-arm/
4 #               - Developing StrongARM shellocde - http://phrack.org/show.php?p=58&a=10
5 #
6 # Conditional build:
7 %bcond_without  gnueabi         # build without Embedded ABI support
8 #
9 Summary:        Cross ARM GNU binary utility development utilities - gcc
10 Summary(es.UTF-8):      Utilitarios para desarrollo de binarios de la GNU - ARM gcc
11 Summary(fr.UTF-8):      Utilitaires de développement binaire de GNU - ARM gcc
12 Summary(pl.UTF-8):      Skrośne narzędzia programistyczne GNU dla ARM - gcc
13 Summary(pt_BR.UTF-8):   Utilitários para desenvolvimento de binários da GNU - ARM gcc
14 Summary(tr.UTF-8):      GNU geliştirme araçları - ARM gcc
15 Name:           crossarm-gcc
16 Version:        11.2.0
17 Release:        1%{?with_gnueabi:gnueabi}
18 Epoch:          1
19 License:        GPL
20 Group:          Development/Languages
21 Source0:        https://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.xz
22 # Source0-md5:  31c86f2ced76acac66992eeedce2fce2
23 %define         _llh_ver        2.6.12.0
24 Source1:        http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-%{_llh_ver}.tar.bz2
25 # Source1-md5:  eae2f562afe224ad50f65a6acfb4252c
26 %define         _uclibc_ver     0.9.27
27 Source2:        http://uclibc.org/downloads/uClibc-%{_uclibc_ver}.tar.bz2
28 # Source2-md5:  6250bd6524283bd8e7bc976d43a46ec0
29 Source3:        crossarm-embedded-uclibc.config
30 Source4:        crossarm-lpc210x-crt0.s
31 URL:            http://gcc.gnu.org/
32 BuildRequires:  autoconf
33 BuildRequires:  automake
34 BuildRequires:  bison
35 BuildRequires:  crossarm-binutils%{?with_gnueabi:(gnueabi)}
36 BuildRequires:  flex
37 BuildRequires:  gmp-devel >= 4.3.2
38 BuildRequires:  kernel-module-build
39 BuildRequires:  libmpc-devel >= 0.8.1
40 BuildRequires:  mpfr-devel >= 3.1.0
41 Requires:       crossarm-binutils%{?with_gnueabi:(gnueabi)}
42 Requires:       gcc-dirs
43 Requires:       gmp >= 4.3.2
44 Requires:       libmpc >= 0.8.1
45 Requires:       mpfr >= 3.1.0
46 ExcludeArch:    arm
47 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49 %define         target          arm-linux%{?with_gnueabi:-gnueabi}
50 %define         arch            %{_prefix}/%{target}
51 %define         gccarch         %{_libdir}/gcc/%{target}
52 %define         gcclib          %{gccarch}/%{version}
53
54 %define         _noautostrip    .*/libgc.*\\.a
55
56 %description
57 This package contains a cross-gcc which allows the creation of
58 binaries to be run on ARM Linux on other machines.
59
60 %description -l de.UTF-8
61 Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
62 anderem Rechner Code für ARM Linux zu generieren.
63
64 %description -l pl.UTF-8
65 Ten pakiet zawiera skrośny gcc pozwalający na robienie na innych
66 maszynach binariów do uruchamiania na Linuksie ARM.
67
68 %package c++
69 Summary:        C++ support for crossarm-gcc
70 Summary(pl.UTF-8):      Obsługa C++ dla crossarm-gcc
71 Group:          Development/Languages
72 Requires:       %{name} = %{epoch}:%{version}-%{release}
73
74 %description c++
75 This package adds C++ support to the GNU Compiler Collection for ARM.
76
77 %description c++ -l pl.UTF-8
78 Ten pakiet dodaje obsługę C++ do kompilatora gcc dla ARM.
79
80 %prep
81 %setup -q -n gcc-%{version} -a1 -a2
82
83 %build
84 FAKE_ROOT=$PWD/fake-root
85 rm -rf $FAKE_ROOT
86
87 install -d $FAKE_ROOT%{_prefix}
88 cp -r uClibc-%{_uclibc_ver}/* $FAKE_ROOT%{_prefix}
89 cd $FAKE_ROOT%{_prefix}
90 install %{SOURCE3} .config
91 %{__make} headers
92 cd -
93
94 cp -f /usr/share/automake/config.* .
95 rm -rf obj-%{target}
96 install -d obj-%{target}
97 cd obj-%{target}
98
99 XCFLAGS="%{rpmcflags}" \
100 XCXXFLAGS="%{rpmcxxflags}" \
101 TEXCONFIG=false \
102 ../configure \
103         --prefix=%{_prefix} \
104         --infodir=%{_infodir} \
105         --mandir=%{_mandir} \
106         --bindir=%{_bindir} \
107         --libdir=%{_libdir} \
108         --libexecdir=%{_libdir} \
109         --disable-shared \
110         --disable-threads \
111         --enable-languages="c,c++" \
112         --enable-c99 \
113         --enable-long-long \
114         --disable-nls \
115         --with-gnu-as \
116         --with-gnu-ld \
117         --with-demangler-in-ld \
118         --with-system-zlib \
119         --enable-multilib \
120         --with-sysroot=$FAKE_ROOT \
121         --without-x \
122         --target=%{target} \
123         --host=%{_target_platform} \
124         --build=%{_target_platform}
125
126 %{__make} all-gcc
127
128 %install
129 rm -rf $RPM_BUILD_ROOT
130 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
131
132 %{__make} -C obj-%{target} install-gcc \
133         DESTDIR=$RPM_BUILD_ROOT
134
135 install obj-%{target}/gcc/specs $RPM_BUILD_ROOT%{gcclib}
136
137 # don't want this here
138 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
139
140 # include/ contains install-tools/include/* and headers that were fixed up
141 # by fixincludes, we don't want former
142 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
143 mkdir   $gccdir/tmp
144 # we have to save these however
145 #{?with_java:mv -f $gccdir/include/{gcj,libffi/ffitarget.h} $gccdir/tmp}
146 mv -f   $gccdir/include-fixed/syslimits.h $gccdir/tmp
147 rm -rf  $gccdir/include
148 mv -f   $gccdir/tmp $gccdir/include
149 cp -f   $gccdir/install-tools/include/*.h $gccdir/include
150 # but we don't want anything more from install-tools
151 rm -rf  $gccdir/install-tools
152
153 # custom startup file(s)
154 install %{SOURCE4} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
155 %{target}-as -mcpu=arm7tdmi %{SOURCE4} -o $RPM_BUILD_ROOT%{gcclib}/lpc210x-crt0.o
156
157 %clean
158 rm -rf $RPM_BUILD_ROOT
159
160 %files
161 %defattr(644,root,root,755)
162 %attr(755,root,root) %{_bindir}/%{target}-cpp
163 %attr(755,root,root) %{_bindir}/%{target}-gcc
164 %attr(755,root,root) %{_bindir}/%{target}-gcc-%{version}
165 %attr(755,root,root) %{_bindir}/%{target}-gcov
166 %dir %{gccarch}
167 %dir %{gcclib}
168 %attr(755,root,root) %{gcclib}/cc1
169 %attr(755,root,root) %{gcclib}/collect2
170 %attr(755,root,root) %{gcclib}/lto-wrapper
171 %attr(755,root,root) %{gcclib}/lto1
172 %attr(755,root,root) %{gcclib}/liblto_plugin.so*
173 %{gcclib}/*crt*.o
174 %{gcclib}/specs*
175 %dir %{gcclib}/include
176 %{gcclib}/include/*.h
177 %{_mandir}/man1/%{target}-cpp.1*
178 %{_mandir}/man1/%{target}-gcc.1*
179 %{_mandir}/man1/%{target}-gcov.1*
180 %{_examplesdir}/%{name}-%{version}
181
182 %files c++
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_bindir}/%{target}-c++
185 %attr(755,root,root) %{_bindir}/%{target}-g++
186 %attr(755,root,root) %{gcclib}/cc1plus
187 %{_mandir}/man1/%{target}-g++.1*
This page took 0.066877 seconds and 2 git commands to generate.