Win64 compiler now builds.
[fedora-mingw.git] / mingw64-gcc / mingw64-gcc.spec
1 %define __os_install_post /usr/lib/rpm/brp-compress %{nil}
2
3 %define upstream_version 4.4-20090206
4
5 Name:           mingw64-gcc
6 Version:        4.4.0
7 Release:        0.20090206.7%{?dist}
8 Summary:        MinGW Windows cross-compiler (GCC) for C
9
10 License:        GPLv2+
11 Group:          Development/Languages
12 URL:            http://www.mingw.org/
13 Source0:        ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/%{upstream_version}/gcc-core-%{upstream_version}.tar.bz2
14 Source1:        ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/%{upstream_version}/gcc-g++-%{upstream_version}.tar.bz2
15 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
16
17 BuildRequires:  texinfo
18 BuildRequires:  mingw64-filesystem >= 10
19 BuildRequires:  mingw64-binutils
20 BuildRequires:  mingw64-headers
21 BuildRequires:  mingw64-runtime
22 BuildRequires:  gmp-devel
23 %if 0%{?fedora} >= 9
24 BuildRequires:  mpfr-devel
25 %endif
26 BuildRequires:  libgomp
27
28 # NB: Explicit mingw64-filesystem dependency is REQUIRED here.
29 Requires:       mingw64-filesystem >= 10
30 Requires:       mingw64-binutils
31 Requires:       mingw64-headers
32 Requires:       mingw64-runtime
33 Requires:       mingw64-cpp
34
35 # Once this full GCC is installed, it obsoletes the bootstrap GCC.
36 Obsoletes:      mingw64-gcc-bootstrap <= %{version}-%{release}
37 Provides:       mingw64-gcc-bootstrap = %{version}-%{release}
38
39
40 %description
41 MinGW Windows cross-compiler (GCC) for C
42
43
44 %package -n mingw64-cpp
45 Summary: MinGW Windows cross-C Preprocessor.
46 Group: Development/Languages
47 Obsoletes:      mingw64-cpp-bootstrap <= %{version}-%{release}
48 Provides:       mingw64-cpp-bootstrap = %{version}-%{release}
49
50
51 %description -n mingw64-cpp
52 MinGW Windows cross-C Preprocessor
53
54
55 %package c++
56 Summary: MinGW Windows cross-compiler for C++
57 Group: Development/Languages
58
59 %description c++
60 MinGW Windows cross-compiler for C++
61
62
63 %prep
64 %setup -q -c
65 %setup -q -D -T -a1
66
67
68 %build
69 cd gcc-%{upstream_version}
70
71 mkdir -p build
72 pushd build
73
74 languages="c,c++"
75
76 CC="%{__cc} ${RPM_OPT_FLAGS}" \
77 ../configure \
78   --prefix=%{_prefix} \
79   --bindir=%{_bindir} \
80   --includedir=%{_includedir} \
81   --libdir=%{_libdir} \
82   --mandir=%{_mandir} \
83   --infodir=%{_infodir} \
84   --datadir=%{_datadir} \
85   --build=%_build --host=%_host \
86   --target=%{_mingw64_target} \
87   --with-gnu-as --with-gnu-ld --verbose \
88   --without-newlib \
89   --disable-multilib \
90   --with-system-zlib \
91   --disable-nls --without-included-gettext \
92   --disable-win32-registry \
93   --enable-version-specific-runtime-libs \
94   --with-sysroot=%{_mingw64_sysroot} \
95   --enable-languages="$languages" $optargs
96
97 make %{?_smp_mflags} all
98 popd
99
100
101 %install
102 rm -rf $RPM_BUILD_ROOT
103
104 cd gcc-%{upstream_version}
105 cd build
106 make DESTDIR=$RPM_BUILD_ROOT install
107
108 # These files conflict with existing installed files.
109 rm -rf $RPM_BUILD_ROOT%{_infodir}
110 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty*
111 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/*
112
113 mkdir -p $RPM_BUILD_ROOT/lib
114 ln -sf ..%{_prefix}/bin/x86_64-pc-mingw32-cpp \
115   $RPM_BUILD_ROOT/lib/x86_64-pc-mingw32-cpp
116
117 # This DLL should definitely not be in /usr/bin ...
118 mkdir -p $RPM_BUILD_ROOT%{_mingw64_bindir}
119 mv $RPM_BUILD_ROOT%{_bindir}/libgcc_s_sjlj-1.dll \
120   $RPM_BUILD_ROOT%{_mingw64_bindir}
121
122
123 %clean
124 rm -rf $RPM_BUILD_ROOT
125
126
127 %files
128 %defattr(-,root,root)
129 %{_bindir}/x86_64-pc-mingw32-gcc
130 %{_bindir}/x86_64-pc-mingw32-gcc-%{version}
131 %{_bindir}/x86_64-pc-mingw32-gccbug
132 %{_bindir}/x86_64-pc-mingw32-gcov
133 %{_prefix}/x86_64-pc-mingw32/lib/libiberty.a
134 %dir %{_libdir}/gcc/x86_64-pc-mingw32
135 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}
136 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/crtfastmath.o
137 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libgcc.a
138 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libgcc_eh.a
139 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libgcc_s.a
140 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libgcov.a
141 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libssp.a
142 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libssp.dll.a
143 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libssp.la
144 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libssp_nonshared.a
145 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libssp_nonshared.la
146 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include
147 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include-fixed
148 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include/ssp
149 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include-fixed/README
150 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include-fixed/*.h
151 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include/*.h
152 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include/ssp/*.h
153 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/install-tools
154 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/install-tools/*
155 %{_libdir}/gcc/x86_64-pc-mingw32/bin/libssp-0.dll
156 %dir %{_libexecdir}/gcc/x86_64-pc-mingw32/%{version}/install-tools
157 %{_libexecdir}/gcc/x86_64-pc-mingw32/%{version}/install-tools/*
158 %{_mandir}/man1/x86_64-pc-mingw32-gcc.1*
159 %{_mandir}/man1/x86_64-pc-mingw32-gcov.1*
160 %{_mingw64_bindir}/libgcc_s_sjlj-1.dll
161
162
163 %files -n mingw64-cpp
164 %defattr(-,root,root)
165 /lib/x86_64-pc-mingw32-cpp
166 %{_bindir}/x86_64-pc-mingw32-cpp
167 %{_mandir}/man1/x86_64-pc-mingw32-cpp.1*
168 %dir %{_libdir}/gcc/x86_64-pc-mingw32
169 %dir %{_libdir}/gcc/x86_64-pc-mingw32/%{version}
170 %{_libexecdir}/gcc/x86_64-pc-mingw32/%{version}/cc1
171
172
173 %files c++
174 %defattr(-,root,root)
175 %{_bindir}/x86_64-pc-mingw32-g++
176 %{_bindir}/x86_64-pc-mingw32-c++
177 %{_mandir}/man1/x86_64-pc-mingw32-g++.1*
178 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/include/c++/
179 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libstdc++.a
180 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libstdc++.la
181 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libsupc++.a
182 %{_libdir}/gcc/x86_64-pc-mingw32/%{version}/libsupc++.la
183 %{_libexecdir}/gcc/x86_64-pc-mingw32/%{version}/cc1plus
184 %{_libexecdir}/gcc/x86_64-pc-mingw32/%{version}/collect2
185
186
187 %changelog
188 * Wed Feb 11 2009 Richard W.M. Jones <rjones@redhat.com> - 4.4.0-0.20090206.7
189 - Started mingw64 development.
190
191 * Mon Nov 24 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-12
192 - Rebuild against latest filesystem package.
193
194 * Fri Nov 21 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-11
195 - Remove obsoletes for a long dead package.
196
197 * Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-10
198 - Rebuild against mingw32-filesystem 37
199
200 * Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-9
201 - Rebuild against mingw32-filesystem 36
202
203 * Thu Oct 30 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-8
204 - Don't BR mpfr-devel for RHEL/EPEL-5 (Levente Farkas).
205
206 * Thu Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-7
207 - Rename mingw -> mingw32.
208
209 * Thu Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-6
210 - Use RPM macros from mingw-filesystem.
211
212 * Mon Jul  7 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-3
213 - Initial RPM release, largely based on earlier work from several sources.