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