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