File mingw32-gcc.spec of Package mingw32-gcc

%define __strip %{_mingw32_strip}
%define __objdump %{_mingw32_objdump}
%define _use_internal_dependency_generator 0
%define __find_requires %{_mingw32_findrequires}
%define __find_provides %{_mingw32_findprovides}
%define __os_install_post %{_mingw32_debug_install_post} \
                          %{_mingw32_install_post}

%define include_ada 0
%define include_java 0

Name:           mingw32-gcc
Version:        4.5.1
Release:        0
Summary:        MinGW Windows compiler (GCC) for C

License:        GPLv2+
Group:          Development/Languages
URL:            http://www.mingw.org/
Source0:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-core-%{version}.tar.bz2
Source1:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-g++-%{version}.tar.bz2
%if %{include_java}
Source2:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-java-%{version}.tar.bz2
%endif
Source3:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-fortran-%{version}.tar.bz2
Source4:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-objc-%{version}.tar.bz2
%if %{include_ada}
Source5:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-ada-%{version}.tar.bz2
%endif
Source50:       ecj.jar
Source100:      %{name}-rpmlintrc
Patch0:         gcc-4.5.1-libjava.patch
Patch1000:      sysroot_include.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      noarch
#!BuildIgnore: post-build-checks

BuildRequires:  texinfo
BuildRequires:  mingw32-filesystem >= 39-3
BuildRequires:  mingw32-cross-binutils
BuildRequires:  mingw32-runtime
BuildRequires:  mingw32-headers
BuildRequires:  mingw32-gmp-devel
BuildRequires:  mingw32-mpfr-devel
BuildRequires:  mingw32-mpc-devel
BuildRequires:  mingw32-zlib-devel
BuildRequires:  mingw32-cross-gcc mingw32-cross-gcc-c++
BuildRequires:	zip, unzip
BuildRequires:	mingw32-cross-gcc-fortran
BuildRequires:  mingw32-cross-gcc-objc
%if %{include_java}
BuildRequires:	mingw32-cross-gcc-java
%endif
%if %{include_ada}
BuildRequires:  mingw32-cross-gcc-ada
BuildRequires:  gcc-ada
%endif
BuildRequires:  gmp-devel mpfr-devel mpc-devel

Requires:       mingw32-binutils
Requires:       mingw32-runtime
Requires:       mingw32-headers
Requires:       mingw32-cpp

%description
MinGW Windows compiler (GCC) for C


%package -n mingw32-libgcc
Summary: MinGW Windows compiler for C shared libraries
Group: Development/Languages

%description -n mingw32-libgcc
MinGW Windows compiler for C shared libraries


%package -n mingw32-libssp
Summary: MinGW Windows compiler for C shared libraries
Group: Development/Languages

%description -n mingw32-libssp
MinGW Windows compiler for C shared libraries


%package -n mingw32-cpp
Summary: MinGW Windows C Preprocessor.
Group: Development/Languages

%description -n mingw32-cpp
MinGW Windows C Preprocessor


%package c++
Summary: MinGW Windows compiler for C++
Group: Development/Languages

%description c++
MinGW Windows compiler for C++


%package -n mingw32-libstdc++
Summary: MinGW Windows compiler for C++ shared libraries
Group: Development/Languages

%description -n mingw32-libstdc++
MinGW Windows compiler for C++ shared libraries

%if %{include_java}

%package java
Summary: MinGW Windows compiler for Java
Group: Development/Languages

%description java
MinGW Windows compiler for Java


%package -n mingw32-libgcj
Summary: MinGW Windows compiler for Java shared libraries
Group: Development/Languages

%description -n mingw32-libgcj
MinGW Windows compiler for Java shared libraries

%endif

%package fortran
Summary: MinGW Windows compiler for Fortran
Group: Development/Languages

%description fortran
MinGW Windows compiler for Fortran


%package -n mingw32-libgfortran
Summary: MinGW Windows compiler for Fortran shared libraries
Group: Development/Languages

%description -n mingw32-libgfortran
MinGW Windows compiler for Fortran shared libraries


%package objc
Summary: MinGW Windows compiler for Objective-C and Objective-C++
Group: Development/Languages

%description objc
MinGW Windows compiler for Objective-C and Objective-C++


%package -n mingw32-libobjc
Summary: MinGW Windows compiler for Objective-C and Objective-C++ shared libraries
Group: Development/Languages

%description -n mingw32-libobjc
MinGW Windows compiler for Objective-C and Objective-C++ shared libraries


%{_mingw32_debug_package}


%prep
%setup -q -c
%setup -q -D -T -a1
%if %{include_java}
%setup -q -D -T -a2
%endif
%setup -q -D -T -a3
%setup -q -D -T -a4
%if %{include_ada}
%setup -q -D -T -a5
%endif
pushd gcc-%{version}
%if %{include_java}
%patch0 -p0
#cp %{SOURCE50} ./
%endif  
%patch1000 -p1
rm -f libstdc++-v3/include/c_compatibility/fenv.h
ln -s %{_mingw32_includedir}/fenv.h libstdc++-v3/include/c_compatibility/fenv.h
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 --enable-interpreter'

mkdir -p %{_mingw32_target}/libjava
echo | %{_mingw32_cc} -o %{_mingw32_target}/libjava/crtmt.o -x c -c -

%else
java_options=
%endif


CC_FOR_TARGET=%{_mingw32_cc} \
CXX_FOR_TARGET=%{_mingw32_cxx} \
GFORTRAN_FOR_TARGET=%{_mingw32_target}-gfortran \
GCJ_FOR_TARGET=%{_mingw32_gcj} \
CFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
CFLAGS_FOR_BUILD="-I-%{_mingw32_includedir}" \
CPPFLAGS_FOR_BUILD="-I-%{_mingw32_includedir}" \
CXXFLAGS_FOR_BUILD="-I-%{_mingw32_includedir}" \
CXXFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
CPPFLAGS_FOR_TARGET="-DGC_NOT_DLL %{_mingw32_cflags}" \
LDFLAGS_FOR_TARGET="-Wl,--enable-runtime-pseudo-reloc-v2" \
../configure \
  --prefix=%{_mingw32_prefix} \
  --disable-werror \
  --disable-werror-always \
  --disable-bootstrap \
  --host=%{_mingw32_host} \
  --with-gnu-as --with-gnu-ld --verbose \
  --without-newlib \
  --disable-multilib \
  --enable-plugin \
  --with-system-zlib \
  --disable-plugin \
  --disable-nls --without-included-gettext \
  --disable-win32-registry \
  --enable-version-specific-runtime-libs \
  --with-build-sysroot=%{_mingw32_sysroot} \
  --with-sysroot=%{_mingw32_prefix} \
  --enable-languages="$languages" $optargs \
  --without-x \
  ${java_options} \
  ${ada_options} \
  --disable-gmp \
  --enable-hash-synchronization

make %{?_smp_mflags} all || make all

%install
rm -rf $RPM_BUILD_ROOT

cd gcc-%{version}
cd build

make DESTDIR=$RPM_BUILD_ROOT install

%if %{include_java}

mkdir -p $RPM_BUILD_ROOT%{_libdir}/gcc/%{_mingw32_target}/%{version}/
cp %{SOURCE50} $RPM_BUILD_ROOT%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/

echo | %{_mingw32_cc} -o crtmt.o -x c -c -
%{_mingw32_env} ; %{_mingw32_gcj} %{SOURCE50} --main=org.eclipse.jdt.internal.compiler.batch.GCCMain \
	-o $RPM_BUILD_ROOT%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/ecj1.exe

(cd $RPM_BUILD_ROOT%{_mingw32_datadir}/java/; for i in libgcj libgcj-tools; \
	do ln -s $i-%{version}.jar $i.jar; done )

%endif

rm -f $RPM_BUILD_ROOT%{_mingw32_infodir}/dir

find $RPM_BUILD_ROOT -name \*.py -exec rm {} +

%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root)
%{_mingw32_bindir}/gcc.exe
%{_mingw32_bindir}/gcov.exe
%{_mingw32_bindir}/gccbug
%exclude %{_mingw32_bindir}/%{_mingw32_target}-gcc.exe
%exclude %{_mingw32_bindir}/%{_mingw32_target}-gcc-%{version}.exe
%exclude %{_mingw32_libdir}/libiberty.a
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/crtbegin.o
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/crtend.o
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/crtfastmath.o
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc_eh.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcc_s.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcov.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libssp.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libssp.dll.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libssp_nonshared.a
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/ssp
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed/README
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include-fixed/*.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/*.h
#%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jni*.h
#%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jawt*.h
#%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/ffi*.h
#%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jvmpi.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/ssp/*.h
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/install-tools
%dir %{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/install-tools
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/install-tools/*
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/install-tools/*
%{_mingw32_mandir}/man1/gcc.1*
%{_mingw32_mandir}/man1/gcov.1*
%{_mingw32_mandir}/man7/fsf-funding.7.gz
%{_mingw32_mandir}/man7/gfdl.7.gz
%{_mingw32_mandir}/man7/gpl.7.gz
%{_mingw32_infodir}/gcc*.info*
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/collect2.exe
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/lto-wrapper.exe

%files -n mingw32-libgcc
%defattr(-,root,root)
%{_mingw32_bindir}/libgcc_s_sjlj-1.dll

%files -n mingw32-libssp
%defattr(-,root,root)
%{_mingw32_bindir}/libssp-0.dll

%files -n mingw32-cpp
%defattr(-,root,root)
#/lib/%{_mingw32_target}-cpp
%{_mingw32_bindir}/cpp.exe
%{_mingw32_mandir}/man1/cpp.1*
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}
%dir %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/cc1.exe
%{_mingw32_infodir}/cpp*.info*


%files c++
%defattr(-,root,root)
%{_mingw32_bindir}/g++.exe
%{_mingw32_bindir}/c++.exe
%exclude %{_mingw32_bindir}/%{_mingw32_target}-g++.exe
%exclude %{_mingw32_bindir}/%{_mingw32_target}-c++.exe
%{_mingw32_mandir}/man1/g++.1*
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/
%if %{include_java}
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/java/
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/javax/
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gcj/
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gnu/
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/org/
%exclude %{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/sun/
%endif
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libstdc++.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libstdc++.dll.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libsupc++.a
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/cc1plus.exe

%files -n mingw32-libstdc++
%defattr(-,root,root)
%{_mingw32_bindir}/libstdc++-6.dll

%if %{include_java}

%files java
%defattr(-,root,root)
%{_mingw32_bindir}/aot-compile
%{_mingw32_bindir}/rebuild-gcj-db
%{_mingw32_bindir}/gappletviewer.exe
%{_mingw32_bindir}/gc-analyze.exe
%{_mingw32_bindir}/gcj.exe
%exclude %{_mingw32_bindir}/%{_mingw32_target}-gcj.exe
%{_mingw32_bindir}/gcj-dbtool.exe
%{_mingw32_bindir}/gcjh.exe
%{_mingw32_bindir}/gij.exe
%{_mingw32_bindir}/gjar.exe
%{_mingw32_bindir}/gjarsigner.exe
%{_mingw32_bindir}/gjavah.exe
%{_mingw32_bindir}/gkeytool.exe
%{_mingw32_bindir}/gnative2ascii.exe
%{_mingw32_bindir}/gorbd.exe
%{_mingw32_bindir}/grmic.exe
%{_mingw32_bindir}/grmid.exe
%{_mingw32_bindir}/grmiregistry.exe
%{_mingw32_bindir}/gserialver.exe
%{_mingw32_bindir}/gtnameserv.exe
%{_mingw32_bindir}/jcf-dump.exe
%{_mingw32_bindir}/jv-convert.exe
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/jc1.exe
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/jvgenmain.exe
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/ecj.jar
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/ecj1.exe
%exclude %{_mingw32_libdir}/libffi.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/java/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/javax/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gcj/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/gnu/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/org/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/c++/sun/
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jni*.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jawt*.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/ffi*.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/jvmpi.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/gcj/libgcj-config.h
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-tools.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj-tools.dll.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.dll.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgcj.spec
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgij.a
%{_mingw32_libdir}/gcj-%{version}-11/libjvm.a
%{_mingw32_libdir}/gcj-%{version}-11/classmap.db
%{_mingw32_libdir}/pkgconfig/libgcj-4.4.pc
%{_mingw32_libdir}/security/classpath.security
%{_mingw32_libdir}/*properties
%{_mingw32_datadir}/java/libgcj*.jar
%{_mingw32_datadir}/python/aotcompile.py
%{_mingw32_datadir}/python/classfile.py
%{_mingw32_mandir}/man1/gappletviewer.1*
%{_mingw32_mandir}/man1/gcjh.1*
%{_mingw32_mandir}/man1/gjar.1*
%{_mingw32_mandir}/man1/gjarsigner.1*
%{_mingw32_mandir}/man1/gjavah.1*
%{_mingw32_mandir}/man1/gjdoc.1*
%{_mingw32_mandir}/man1/gkeytool.1*
%{_mingw32_mandir}/man1/gnative2ascii.1*
%{_mingw32_mandir}/man1/gorbd.1.gz
%{_mingw32_mandir}/man1/grmid.1.gz
%{_mingw32_mandir}/man1/grmiregistry.1.gz
%{_mingw32_mandir}/man1/gserialver.1.gz
%{_mingw32_mandir}/man1/gtnameserv.1.gz
%{_mingw32_mandir}/man1/gc-analyze.1*
%{_mingw32_mandir}/man1/gcj-dbtool.1*
%{_mingw32_mandir}/man1/gcj.1*
%{_mingw32_mandir}/man1/gij.1*
%{_mingw32_mandir}/man1/grmic.1*
%{_mingw32_mandir}/man1/jcf-dump.1*
%{_mingw32_mandir}/man1/jv-convert.1*
%{_mingw32_mandir}/man1/aot-compile.1*
%{_mingw32_mandir}/man1/rebuild-gcj-db.1*
%{_mingw32_infodir}/gcj.info*
%{_mingw32_infodir}/cp-tools.info*


%files -n mingw32-libgcj
%defattr(-,root,root)
%{_mingw32_bindir}/libgcj-11.dll
%{_mingw32_bindir}/libgcj-tools-11.dll

%endif

%files fortran
%defattr(-,root,root)
%{_mingw32_bindir}/gfortran.exe
%exclude %{_mingw32_bindir}/%{_mingw32_target}-gfortran.exe
%{_mingw32_mandir}/man1/gfortran.1*
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortran.dll.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libgfortranbegin.a
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/f951.exe
%{_mingw32_infodir}/gfortran.info*


%files -n mingw32-libgfortran
%defattr(-,root,root)
%{_mingw32_bindir}/libgfortran-3.dll


%files objc
%defattr(-,root,root)
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/include/objc
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libobjc.a
%{_mingw32_libdir}/gcc/%{_mingw32_target}/%{version}/libobjc.dll.a
%{_mingw32_libexecdir}/gcc/%{_mingw32_target}/%{version}/cc1obj*.exe


%files -n mingw32-libobjc
%defattr(-,root,root)
%{_mingw32_bindir}/libobjc-2.dll



%changelog
openSUSE Build Service is sponsored by