Enable C++ compilers. Split cpp & c++ into sub-RPMs. Add gettext and iconv
[fedora-mingw.git] / gcc / mingw-gcc.spec
1 %define __os_install_post /usr/lib/rpm/brp-compress %{nil}
2
3 Name:           mingw-gcc
4 Version:        4.3.2
5 Release:        3%{?dist}
6 Summary:        MinGW Windows cross-compiler (GCC) for C
7
8 License:        GPLv2+
9 Group:          Development/Languages
10 URL:            http://www.mingw.org/
11 Source0:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-core-%{version}.tar.bz2
12 Source1:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-g++-%{version}.tar.bz2
13 Patch1:         %{name}-build.patch
14 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
15
16 BuildRequires:  texinfo
17 BuildRequires:  mingw-binutils
18 BuildRequires:  mingw-runtime
19 BuildRequires:  mingw-w32api
20 BuildRequires:  gmp-devel
21 BuildRequires:  mpfr-devel
22 BuildRequires:  libgomp
23
24 Requires:       mingw-binutils
25 Requires:       mingw-runtime
26 Requires:       mingw-w32api
27 Requires:       mingw-cpp
28
29
30 %description
31 MinGW Windows cross-compiler (GCC) for C
32
33 %package -n mingw-cpp
34 Summary: MinGW Windows cross-C Preprocessor.
35 Group: Development/Languages
36
37 %description -n mingw-cpp
38 MinGW Windows cross-C Preprocessor
39
40 %package c++
41 Summary: MinGW Windows cross-compiler for C++
42 Group: Development/Languages
43
44 %description c++
45 MinGW Windows cross-compiler for C++
46
47
48
49 %prep
50 %setup -q -c
51 %setup -q -D -T -a1
52 %patch1 -p1
53
54 %build
55 cd gcc-%{version}
56
57 mkdir -p build
58 cd build
59
60 languages="c,c++"
61 #languages="c"
62 # XXX C++ disabled for now because of a strange GCC bug.
63
64 CC="%{__cc} ${RPM_OPT_FLAGS}" \
65 ../configure \
66   --prefix=%{_prefix} \
67   --bindir=%{_bindir} \
68   --includedir=%{_includedir} \
69   --libdir=%{_libdir} \
70   --mandir=%{_mandir} \
71   --infodir=%{_infodir} \
72   --datadir=%{_datadir} \
73   --build=%_build --host=%_host \
74   --target=i686-pc-mingw32 \
75   --with-gnu-as --with-gnu-ld --verbose \
76   --without-newlib \
77   --disable-multilib \
78   --with-system-zlib \
79   --disable-nls --without-included-gettext \
80   --disable-win32-registry \
81   --enable-version-specific-runtime-libs \
82   --with-sysroot=%{_prefix}/i686-pc-mingw32/sys-root \
83   --enable-languages="$languages" $optargs
84
85 make all
86
87
88 %install
89 rm -rf $RPM_BUILD_ROOT
90
91 cd gcc-%{version}
92 cd build
93 make DESTDIR=$RPM_BUILD_ROOT install
94
95 # These files conflict with existing installed files.
96 rm -rf $RPM_BUILD_ROOT%{_infodir}
97 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty*
98 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/*
99
100 mkdir -p $RPM_BUILD_ROOT/lib
101 ln -sf ..%{_prefix}/bin/i686-pc-mingw-cpp $RPM_BUILD_ROOT/lib/i686-pc-mingw32-cpp
102
103 %clean
104 rm -rf $RPM_BUILD_ROOT
105
106
107 %files
108 %defattr(-,root,root)
109 %{_bindir}/i686-pc-mingw32-gcc
110 %{_bindir}/i686-pc-mingw32-gcc-%{version}
111 %{_bindir}/i686-pc-mingw32-gccbug
112 %{_bindir}/i686-pc-mingw32-gcov
113 %{_prefix}/i686-pc-mingw32/lib/libiberty.a
114 %dir %{_libdir}/gcc/i686-pc-mingw32
115 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}
116 %{_libdir}/gcc/i686-pc-mingw32/%{version}/crtbegin.o
117 %{_libdir}/gcc/i686-pc-mingw32/%{version}/crtend.o
118 %{_libdir}/gcc/i686-pc-mingw32/%{version}/crtfastmath.o
119 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc.a
120 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcov.a
121 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.a
122 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.la
123 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp_nonshared.a
124 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp_nonshared.la
125 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include
126 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed
127 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp
128 %{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed/README
129 %{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed/*.h
130 %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/*.h
131 %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp/*.h
132 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools
133 %{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
134 %dir %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools
135 %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
136 %{_mandir}/man1/i686-pc-mingw32-gcc.1*
137 %{_mandir}/man1/i686-pc-mingw32-gcov.1*
138
139 %files -n mingw-cpp
140 %defattr(-,root,root)
141 /lib/i686-pc-mingw32-cpp
142 %{_bindir}/i686-pc-mingw32-cpp
143 %{_mandir}/man1/i686-pc-mingw32-cpp.1*
144 %dir %{_libdir}/gcc/i686-pc-mingw32
145 %dir %{_libdir}/gcc/i686-pc-mingw32/%{version}
146 %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1
147
148 %files c++
149 %defattr(-,root,root)
150 %{_bindir}/i686-pc-mingw32-g++
151 %{_bindir}/i686-pc-mingw32-c++
152 %{_mandir}/man1/i686-pc-mingw32-g++.1*
153 %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/c++/
154 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libstdc++.a
155 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libstdc++.la
156 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libsupc++.a
157 %{_libdir}/gcc/i686-pc-mingw32/%{version}/libsupc++.la
158 %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1plus
159 %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/collect2
160
161 %changelog
162 * Mon Jul  7 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.1-3
163 - Initial RPM release, largely based on earlier work from several sources.