]> git.pld-linux.org Git - packages/crossmingw64-gcc.git/blob - crossmingw64-gcc.spec
f77d210450d2bec935effd784dae931b91ad162b
[packages/crossmingw64-gcc.git] / crossmingw64-gcc.spec
1 # TODO: host _bindir is not the place for Win64 .dll!
2 #
3 # Conditional build:
4 %bcond_with     bootstrap       # bootstrap build (only C compiler with static runtime)
5 #
6 Summary:        Cross Mingw64 GNU binary utility development utilities - gcc
7 Summary(es.UTF-8):      Utilitarios para desarrollo de binarios de la GNU - Mingw64 gcc
8 Summary(fr.UTF-8):      Utilitaires de développement binaire de GNU - Mingw64 gcc
9 Summary(pl.UTF-8):      Skrośne narzędzia programistyczne GNU dla Mingw64 - gcc
10 Summary(pt_BR.UTF-8):   Utilitários para desenvolvimento de binários da GNU - Mingw64 gcc
11 Summary(tr.UTF-8):      GNU geliştirme araçları - Mingw64 gcc
12 Name:           crossmingw64-gcc
13 Version:        4.6.0
14 Release:        0.1
15 Epoch:          1
16 License:        GPL v3+
17 Group:          Development/Languages
18 Source0:        ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
19 # Source0-md5:  93d1c436bf991564524701259b6285a2
20 # svn co https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/branches/releases/v1.0/mingw-w64-crt mingw64-crt
21 %define         _rev    4121
22 Source1:        mingw64-crt.tar.xz
23 # Source1-md5:  761c887436a8f362b77f5a00f40335b5
24 Patch0:         gcc-branch.diff
25 Patch1:         gcc-mingw-dirs.patch
26 BuildRequires:  autoconf
27 BuildRequires:  automake
28 BuildRequires:  bison
29 BuildRequires:  crossmingw64-binutils
30 %{!?with_bootstrap:BuildRequires:       crossmingw64-gcc}
31 BuildRequires:  crossmingw64-headers
32 BuildRequires:  flex
33 BuildRequires:  gmp-devel >= 4.1
34 BuildRequires:  libmpc-devel
35 BuildRequires:  mpfr-devel >= 2.3.0
36 BuildRequires:  subversion
37 BuildRequires:  texinfo >= 4.2
38 Requires:       crossmingw64-binutils
39 Requires:       crossmingw64-headers
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %define         target          x86_64-pc-mingw32
43 %define         arch            %{_prefix}/%{target}
44 %define         gccarch         %{_libdir}/gcc/%{target}
45 %define         gcclib          %{gccarch}/%{version}
46
47 %define         _noautostrip    .*/lib.*\\.a
48
49 # workaround bootstrap bug: http://gcc.gnu.org/bugzilla/PR25672
50 %define         filterout       -march=i486 -march=i686 -mtune=pentium4
51
52 %description
53 crossmingw64 is a complete cross-compiling development system for
54 building stand-alone Microsoft Windows applications under Linux using
55 the Mingw64 build libraries. This includes a binutils, gcc with g++
56 and libstdc++, all cross targeted to x86_64-pc-mingw32.
57
58 This package contains cross targeted gcc.
59
60 %package c++
61 Summary:        Mingw64 binary utility development utilities - g++
62 Summary(pl.UTF-8):      Zestaw narzędzi mingw64 - g++
63 Group:          Development/Languages
64 Requires:       %{name} = %{epoch}:%{version}-%{release}
65
66 %description c++
67 crossmingw64 is a complete cross-compiling development system for
68 building stand-alone Microsoft Windows applications under Linux using
69 the Mingw64 build libraries. This includes a binutils, gcc with g++
70 and libstdc++, all cross targeted to x86_64-pc-mingw32.
71
72 This package contains cross targeted g++ and libstdc++.
73
74 %prep
75 %setup -q -n gcc-%{version} -a 1
76 %patch0 -p0
77 %patch1 -p1
78
79 # override snapshot version.
80 echo %{version} > gcc/BASE-VER
81 echo "release" > gcc/DEV-PHASE
82
83 if [ "`svnversion -n mingw64-crt`" != "%{_rev}" ]; then
84         exit 1
85 fi
86
87 %build
88 rm -rf BUILDDIR && install -d BUILDDIR/%{target} && cd BUILDDIR
89
90 # setup system headers for local build.
91 cp -ar %{arch}/include %{target}/include
92
93 CFLAGS="%{rpmcflags}" \
94 CXXFLAGS="%{rpmcflags}" \
95 LDFLAGS="%{rpmldflags}" \
96 TEXCONFIG=false \
97 ../configure \
98         --enable-checking=release \
99         --prefix=%{_prefix} \
100         --infodir=%{_infodir} \
101         --mandir=%{_mandir} \
102         --libdir=%{_libdir} \
103         --libexecdir=%{_libexecdir} \
104         --includedir=%{arch}/include \
105         --with-gnu-as \
106         --with-gnu-ld \
107         --with-sysroot=%{arch} \
108         --%{?with_bootstrap:dis}%{!?with_bootstrap:en}able-shared \
109         --disable-win32-registry \
110         --enable-threads=win32 \
111         --enable-tls \
112         --enable-sjlj-exceptions \
113         --enable-languages="c%{!?with_bootstrap:,c++}" \
114         --disable-multilib \
115         --disable-nls \
116         --disable-libmudflap \
117         --disable-libquadmath \
118         --disable-libssp \
119         --disable-plugin \
120         --disable-lto \
121         --enable-c99 \
122         --enable-long-long \
123         --enable-decimal-float=yes \
124         --enable-cmath \
125         --with-mangler-in-ld \
126         --with-gxx-include-dir=%{arch}/include/c++/%{version} \
127         --enable-fully-dynamic-string \
128         --enable-libstdcxx-allocator=new \
129         --disable-libstdcxx-pch \
130         --enable-__cxa_atexit \
131         --with-pkgversion="PLD-Linux" \
132         --with-bugurl="http://bugs.pld-linux.org" \
133         --build=%{_target_platform} \
134         --host=%{_target_platform} \
135         --target=%{target}
136
137 %{__make} -j4
138 cd ..
139
140 cd mingw64-crt
141 CC="$PWD/../BUILDDIR/gcc/gcc-cross -B$PWD/../BUILDDIR/gcc/" \
142 ./configure \
143         --host=%{target} \
144         --prefix=%{_prefix} \
145         --disable-lib32 --enable-lib64
146
147 %{__make}
148 cd ..
149
150 %install
151 rm -rf $RPM_BUILD_ROOT
152 install -d $RPM_BUILD_ROOT
153
154 cd BUILDDIR
155 %{__make} install \
156         DESTDIR=$RPM_BUILD_ROOT
157
158 install gcc/specs $RPM_BUILD_ROOT%{gcclib}
159
160 %if %{without bootstrap}
161 if [ ! -f "$RPM_BUILD_ROOT%{_bindir}/libgcc_s_sjlj-1.dll" ]; then
162         echo "libgcc_s_sjlj-1.dll install still broken?"
163         install %{target}/libgcc/shlib/libgcc_s_sjlj-1.dll $RPM_BUILD_ROOT%{_bindir}
164 fi
165 %endif
166
167 cd ..
168
169 gccdir=$RPM_BUILD_ROOT%{gcclib}
170 mv $gccdir/include-fixed/{limits,syslimits}.h $gccdir/include
171 rm -r $gccdir/include-fixed
172 rm -r $gccdir/install-tools
173
174 %{__make} -C mingw64-crt install \
175         DESTDIR=$RPM_BUILD_ROOT
176
177 %if 0%{!?debug:1}
178 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a
179 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a
180 find $RPM_BUILD_ROOT%{arch}/lib -type f -name '*.a' -o -name '*.o' \
181         -exec %{target}-strip -g -R.note -R.comment "{}" ";"
182 %endif
183
184 %clean
185 rm -rf $RPM_BUILD_ROOT
186
187 %files
188 %defattr(644,root,root,755)
189 %attr(755,root,root) %{_bindir}/%{target}-gcc*
190 %attr(755,root,root) %{_bindir}/%{target}-cpp
191 %attr(755,root,root) %{_bindir}/%{target}-gcov
192 %dir %{gccarch}
193 %dir %{gcclib}
194 %dir %{gcclib}/include
195 %{gcclib}/include/abmintrin.h
196 %{gcclib}/include/ammintrin.h
197 %{gcclib}/include/avxintrin.h
198 %{gcclib}/include/bmiintrin.h
199 %{gcclib}/include/bmmintrin.h
200 %{gcclib}/include/cpuid.h
201 %{gcclib}/include/cross-stdarg.h
202 %{gcclib}/include/emmintrin.h
203 %{gcclib}/include/float.h
204 %{gcclib}/include/fma4intrin.h
205 %{gcclib}/include/ia32intrin.h
206 %{gcclib}/include/immintrin.h
207 %{gcclib}/include/iso646.h
208 %{gcclib}/include/limits.h
209 %{gcclib}/include/lwpintrin.h
210 %{gcclib}/include/mm3dnow.h
211 %{gcclib}/include/mm_malloc.h
212 %{gcclib}/include/mmintrin.h
213 %{gcclib}/include/nmmintrin.h
214 %{gcclib}/include/pmmintrin.h
215 %{gcclib}/include/popcntintrin.h
216 %{gcclib}/include/smmintrin.h
217 %{gcclib}/include/tbmintrin.h
218 %{gcclib}/include/stdarg.h
219 %{gcclib}/include/stdbool.h
220 %{gcclib}/include/stddef.h
221 %{gcclib}/include/stdfix.h
222 %{gcclib}/include/stdint-gcc.h
223 %{gcclib}/include/stdint.h
224 %{gcclib}/include/syslimits.h
225 %{gcclib}/include/tgmath.h
226 %{gcclib}/include/tmmintrin.h
227 %{gcclib}/include/unwind.h
228 %{gcclib}/include/varargs.h
229 %{gcclib}/include/wmmintrin.h
230 %{gcclib}/include/x86intrin.h
231 %{gcclib}/include/xmmintrin.h
232 %{gcclib}/include/xopintrin.h
233 %attr(755,root,root) %{gcclib}/cc1
234 %attr(755,root,root) %{gcclib}/collect2
235 %attr(755,root,root) %{gcclib}/lto-wrapper
236 %{gcclib}/*.o
237 %{gcclib}/libgcc.a
238 %if %{without bootstrap}
239 %{_bindir}/libgcc_s_sjlj-1.dll
240 %{gcclib}/libgcc_eh.a
241 %endif
242 %{gcclib}/libgcov.a
243 %{gcclib}/specs*
244 %{_mandir}/man1/%{target}-cpp.1*
245 %{_mandir}/man1/%{target}-gcc.1*
246 %{_mandir}/man1/%{target}-gcov.1*
247 %{arch}/lib/*.a
248 %if %{without bootstrap}
249 %exclude %{arch}/include/c++
250 %exclude %{arch}/lib/libstdc++.a
251 %exclude %{arch}/lib/libsupc++.a
252 %endif
253 %{arch}/lib/*.o
254
255 %if %{without bootstrap}
256 %files c++
257 %defattr(644,root,root,755)
258 %attr(755,root,root) %{_bindir}/%{target}-[cg]++
259 %attr(755,root,root) %{gcclib}/cc1plus
260 %{_bindir}/libstdc++-6.dll
261 %{arch}/lib/libstdc++.a
262 %{arch}/lib/libstdc++.la
263 %{arch}/lib/libsupc++.a
264 %{arch}/lib/libsupc++.la
265 %{arch}/include/c++
266 %{_mandir}/man1/%{target}-g++.1*
267 %endif
This page took 0.051526 seconds and 2 git commands to generate.