File mingw32-cross-gcc.spec of Package mingw32-gcc
#
# spec file for package mingw32-cross-gcc
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define __os_install_post %{_libexecdir}/rpm/brp-compress %{nil}
%define include_ada 0
%define include_java 1
Name: mingw32-cross-gcc
Version: 4.9.2
Release: 0
Summary: MinGW Windows cross-compiler (GCC) for C
License: GPL-2.0+
Group: Development/Languages
Url: http://www.mingw.org/
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.bz2
Source50: ecj.jar
Patch0: gcc-4.8.0-libjava.patch
Patch1: gcc-make-xmmintrin-header-cplusplus-compatible.patch
Patch2: enable_ofstream_wchar_ctor_and_open.diff
#!BuildIgnore: post-build-checks
BuildRequires: gcc-c++
BuildRequires: gmp-devel >= 4.2.0
BuildRequires: mingw32-cross-binutils
BuildRequires: mingw32-filesystem >= 39-3
BuildRequires: mingw32-headers >= 3.1.0
BuildRequires: mingw32-runtime >= 3.1.0
BuildRequires: mpc-devel >= 0.8.0
BuildRequires: mpfr-devel >= 2.4.0
BuildRequires: texinfo
BuildRequires: unzip
BuildRequires: zip
BuildRequires: zlib-devel
# NB: Explicit mingw32-filesystem dependency is REQUIRED here.
Requires: mingw32-cross-binutils
Requires: mingw32-cross-cpp >= %{version}
Requires: mingw32-filesystem >= 39-3
Requires: mingw32-headers
Requires: mingw32-runtime
# Once this full GCC is installed, it obsoletes the bootstrap GCC.
Obsoletes: mingw32-cross-gcc-bootstrap < %{version}
Provides: mingw32-cross-gcc-bootstrap = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{include_java}
BuildRequires: gcc-java
BuildRequires: libgcj-devel
%endif
%if %{include_ada}
BuildRequires: gcc-ada
%endif
%description
MinGW Windows cross-compiler (GCC) for C
%package -n mingw32-cross-cpp
Summary: MinGW Windows cross-C Preprocessor
Group: Development/Languages
Obsoletes: mingw32-cross-cpp-bootstrap < %{version}
Provides: mingw32-cross-cpp-bootstrap = %{version}
%description -n mingw32-cross-cpp
MinGW Windows cross-C Preprocessor
%package c++
Summary: MinGW Windows cross-compiler for C++
Group: Development/Languages
Requires: %{name} = %{version}
%description c++
MinGW Windows cross-compiler for C++
%if %{include_java}
%package java
Summary: MinGW Windows cross-compiler for Java
Group: Development/Languages
%description java
MinGW Windows cross-compiler for Java
%endif
%package fortran
Summary: MinGW Windows cross-compiler for Fortran
Group: Development/Languages
%description fortran
MinGW Windows cross-compiler for Fortran
%package objc
Summary: MinGW Windows cross-compiler for Objective-C and Objective-C++
Group: Development/Languages
%description objc
MinGW Windows cross-compiler for Objective-C and Objective-C++
%if %{include_ada}
%package ada
Summary: MinGW Windows cross-compiler for Ada
Group: Development/Languages
%description ada
MinGW Windows cross-compiler for Ada
%endif
%prep
%setup -q -c
pushd gcc-%{version}
%patch0
%patch1
%patch2 -p1
popd
%build
cd gcc-%{version}
mkdir -p build
cd build
languages="c,c++,fortran,objc,obj-c++"
%if %{include_ada}
languages+=",ada"
ada_options=-enable-libada
%else
ada_options=
%endif
%if %{include_java}
languages+=",java"
java_options='--enable-libgcj --enable-java-gc-boehm --disable-libgcj-debug'
%else
java_options=
%endif
CC="gcc %{optflags}" \
CFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
CXXFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
CPPFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
../configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--includedir=%{_includedir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%{_build} --host=%{_host} \
--target=%{_mingw32_target} \
--with-gnu-as --with-gnu-ld --verbose \
--without-newlib \
--disable-multilib \
--disable-plugin \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--with-sysroot=%{_mingw32_sysroot} \
--enable-languages="$languages" $optargs \
${java_options} \
${ada_options} \
--without-x \
--enable-hash-synchronization \
--enable-fully-dynamic-strings \
--enable-libgomp \
--enable-linker-build-id
make %{?_smp_mflags} all || make all
%install
cd gcc-%{version}
cd build
make DESTDIR=%{buildroot} install %{?_smp_mflags}
# These files conflict with existing installed files.
rm -rf %{buildroot}%{_infodir}
rm -f %{buildroot}%{_libdir}/libiberty*
rm -f %{buildroot}%{_mandir}/man7/*
rm -f %{buildroot}%{_bindir}/vxaddr2line
mkdir -p %{buildroot}/lib
ln -sf ..%{_bindir}/%{_mingw32_target}-cpp \
%{buildroot}/lib/%{_mingw32_target}-cpp
%if %{include_java}
mkdir -p %{buildroot}%{_libdir}/gcc/%{_mingw32_target}/%{version}/
cp %{SOURCE50} %{buildroot}%{_libdir}/gcc/%{_mingw32_target}/%{version}/
gcj %{SOURCE50} --main=org.eclipse.jdt.internal.compiler.batch.GCCMain \
-o %{buildroot}%{_libdir}/gcc/%{_mingw32_target}/%{version}/ecj1
rm -rf %{buildroot}%{_datadir}/java
%endif
# The dlls that we will use are from the native build of gcc
find %{buildroot} -name \*.dll -exec rm {} +
mv %{buildroot}%{_libdir}/gcc/%{_mingw32_target}/lib/libgcc_s.a \
%{buildroot}%{_libdir}/gcc/%{_mingw32_target}/%{version}/
rm -f %{buildroot}%{_bindir}/%{_mingw32_target}-aot-compile
rm -f %{buildroot}%{_bindir}/%{_mingw32_target}-rebuild-gcj-db
rm -f %{buildroot}%{_mandir}/man1/%{_mingw32_target}-aot-compile.1*
rm -f %{buildroot}%{_mandir}/man1/%{_mingw32_target}-gjdoc.1*
rm -f %{buildroot}%{_mandir}/man1/%{_mingw32_target}-rebuild-gcj-db.1*
rm -f %{buildroot}%{_mandir}/man3/%{_mingw32_target}-ffi.3*
rm -f %{buildroot}%{_mandir}/man3/%{_mingw32_target}-ffi_call.3*
rm -f %{buildroot}%{_mandir}/man3/%{_mingw32_target}-ffi_prep_cif*
rm -f %{buildroot}%{_libdir}/gcc/%{_mingw32_target}/%{version}/finclude/omp_lib*
rm -rf %{buildroot}%{_datadir}/python
find %{buildroot} -name \*.py -exec rm {} +
%files
%defattr(-,root,root)
%{_bindir}/%{_mingw32_target}-gcc*
%{_bindir}/%{_mingw32_target}-gcov
%dir %{_libdir}/gcc/%{_mingw32_target}
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}
%{_libdir}/gcc/%{_mingw32_target}/%{version}/crtbegin.o
%{_libdir}/gcc/%{_mingw32_target}/%{version}/crtend.o
%{_libdir}/gcc/%{_mingw32_target}/%{version}/crtfastmath.o
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc_eh.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc_s.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcov.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libssp.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libssp.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libssp.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libssp_nonshared.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libssp_nonshared.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libcaf_single.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libcaf_single.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgomp.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgomp.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgomp.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgomp.spec
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}/include
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/ssp
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed/README
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed/*.h
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/*.h
%if %{include_java}
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jni*.h
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jawt*.h
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jvmpi.h
%endif
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/ssp/*.h
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}/install-tools
%{_libdir}/gcc/%{_mingw32_target}/%{version}/install-tools/*
%{_mandir}/man1/%{_mingw32_target}-gcc.1*
%{_mandir}/man1/%{_mingw32_target}-gcov.1*
%{_libdir}/gcc/%{_mingw32_target}/%{version}/collect2
%{_libdir}/gcc/%{_mingw32_target}/%{version}/lto-wrapper
%{_libdir}/gcc/%{_mingw32_target}/%{version}/lto1
%{_libdir}/gcc/%{_mingw32_target}/%{version}/liblto_plugin.so*
%{_libdir}/gcc/%{_mingw32_target}/%{version}/liblto_plugin.la
%files -n mingw32-cross-cpp
%defattr(-,root,root)
/lib/%{_mingw32_target}-cpp
%{_bindir}/%{_mingw32_target}-cpp
%{_mandir}/man1/%{_mingw32_target}-cpp.1*
%dir %{_libdir}/gcc/%{_mingw32_target}
%dir %{_libdir}/gcc/%{_mingw32_target}/%{version}
%{_libdir}/gcc/%{_mingw32_target}/%{version}/cc1
%files c++
%defattr(-,root,root)
%{_bindir}/%{_mingw32_target}-g++
%{_bindir}/%{_mingw32_target}-c++
%{_mandir}/man1/%{_mingw32_target}-g++.1*
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/
%if %{include_java}
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/java/
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/javax/
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gcj/
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gnu/
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/org/
%exclude %{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/sun/
%endif
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libstdc++.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libstdc++.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libstdc++.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libsupc++.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libsupc++.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/cc1plus
%if %{include_java}
%files java
%defattr(-,root,root)
%{_bindir}/%{_mingw32_target}-gcj
%{_bindir}/%{_mingw32_target}-jcf-dump
%{_libdir}/gcc/%{_mingw32_target}/%{version}/jc1
%{_libdir}/gcc/%{_mingw32_target}/%{version}/jvgenmain
%{_libdir}/gcc/%{_mingw32_target}/%{version}/ecj.jar
%{_libdir}/gcc/%{_mingw32_target}/%{version}/ecj1
%{_mandir}/man1/%{_mingw32_target}-gc-analyze.1*
%{_mandir}/man1/%{_mingw32_target}-gcj-dbtool.1*
%{_mandir}/man1/%{_mingw32_target}-gcj.1*
%{_mandir}/man1/%{_mingw32_target}-gij.1*
%{_mandir}/man1/%{_mingw32_target}-grmic.1*
%{_mandir}/man1/%{_mingw32_target}-jcf-dump.1*
%{_mandir}/man1/%{_mingw32_target}-jv-convert.1*
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/java/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/javax/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gcj/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gnu/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/org/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/sun/
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jni*.h
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jawt*.h
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/jvmpi.h
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/gcj/libgcj-config.h
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-tools.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-tools.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-noncore.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-noncore.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.spec
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgij.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgij.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/gcj-%{version}-15/libjvm.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/gcj-%{version}-15/libjvm.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/pkgconfig/libgcj-4.9.pc
%{_libdir}/gcc/%{_mingw32_target}/%{version}/security/classpath.security
%{_libdir}/gcc/%{_mingw32_target}/%{version}/*properties
%{_mandir}/man1/%{_mingw32_target}-gappletviewer.1.gz
%{_mandir}/man1/%{_mingw32_target}-gcjh.1.gz
%{_mandir}/man1/%{_mingw32_target}-gjar.1.gz
%{_mandir}/man1/%{_mingw32_target}-gjarsigner.1.gz
%{_mandir}/man1/%{_mingw32_target}-gjavah.1.gz
%{_mandir}/man1/%{_mingw32_target}-gkeytool.1.gz
%{_mandir}/man1/%{_mingw32_target}-gnative2ascii.1.gz
%{_mandir}/man1/%{_mingw32_target}-gorbd.1.gz
%{_mandir}/man1/%{_mingw32_target}-grmid.1.gz
%{_mandir}/man1/%{_mingw32_target}-grmiregistry.1.gz
%{_mandir}/man1/%{_mingw32_target}-gserialver.1.gz
%{_mandir}/man1/%{_mingw32_target}-gtnameserv.1.gz
%endif
%files fortran
%defattr(-,root,root)
%{_bindir}/%{_mingw32_target}-gfortran
%{_mandir}/man1/%{_mingw32_target}-gfortran.1*
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortranbegin.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortranbegin.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.spec
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libquadmath.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libquadmath.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libquadmath.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/f951
%files objc
%defattr(-,root,root)
%{_libdir}/gcc/%{_mingw32_target}/%{version}/include/objc
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libobjc.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libobjc.dll.a
%{_libdir}/gcc/%{_mingw32_target}/%{version}/libobjc.la
%{_libdir}/gcc/%{_mingw32_target}/%{version}/cc1obj*
%if %{include_ada}
%files ada
%defattr(-,root,root)
%{_libdir}/gcc/%{_mingw32_target}/%{version}/adainclude
%{_libdir}/gcc/%{_mingw32_target}/%{version}/adalib
%{_libdir}/gcc/%{_mingw32_target}/%{version}/gnat1
%{_bindir}/%{_mingw32_target}-gnat*
%endif
%changelog