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