diff options
author | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2011-02-17 04:20:39 -0600 |
---|---|---|
committer | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2011-02-17 04:20:39 -0600 |
commit | 18b2215312477fd9a72e5526f7ccb18e824102d8 (patch) | |
tree | 97976982c2d228d8f6b5eb627f85b796631cd6b5 /cygwin-gcc.spec | |
download | cygwin-gcc-18b2215312477fd9a72e5526f7ccb18e824102d8.tar.gz cygwin-gcc-18b2215312477fd9a72e5526f7ccb18e824102d8.tar.xz cygwin-gcc-18b2215312477fd9a72e5526f7ccb18e824102d8.zip |
Initial commit
Diffstat (limited to 'cygwin-gcc.spec')
-rw-r--r-- | cygwin-gcc.spec | 496 |
1 files changed, 496 insertions, 0 deletions
diff --git a/cygwin-gcc.spec b/cygwin-gcc.spec new file mode 100644 index 0000000..6528c41 --- /dev/null +++ b/cygwin-gcc.spec @@ -0,0 +1,496 @@ +%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha +%global build_ada 1 +%else +%global build_ada 0 +%endif +%global build_java 1 +%global __os_install_post /usr/lib/rpm/brp-compress %{nil} + +Name: cygwin-gcc +Version: 4.5.2 +Release: 1%{?dist} +Summary: Cygwin cross-compiler (GCC) for C + +License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions +Group: Development/Languages +URL: http://gcc.gnu.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 +Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-fortran-%{version}.tar.bz2 +Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-objc-%{version}.tar.bz2 +%if %{build_ada} +Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-ada-%{version}.tar.bz2 +%endif +%if %{build_java} +Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-java-%{version}.tar.bz2 +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: texinfo +BuildRequires: cygwin-filesystem +BuildRequires: cygwin-binutils +BuildRequires: cygwin +BuildRequires: cygwin-w32api +BuildRequires: gmp-devel +BuildRequires: mpfr-devel +BuildRequires: libmpc-devel +BuildRequires: ppl-devel >= 0.10 +BuildRequires: cloog-ppl-devel >= 0.15 +BuildRequires: zlib-devel +BuildRequires: flex +%if %{build_ada} +BuildRequires: gcc-gnat +%endif +%if %{build_java} +BuildRequires: cygwin-libiconv +BuildRequires: cygwin-zlib +BuildRequires: gcc-java +%endif + +# NB: Explicit cygwin-filesystem dependency is REQUIRED here. +Requires: cygwin-filesystem +Requires: cygwin-binutils +Requires: cygwin +Requires: cygwin-w32api +Requires: cygwin-cpp +Requires: gmp +Requires: mpfr +Requires: libmpc +Requires: ppl +Requires: cloog-ppl +Requires: zlib + +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +Provides: cygwin(cyggcc_s-1.dll) +Provides: cygwin(cyggomp-1.dll) +Provides: cygwin(cygssp-0.dll) +%if %{build_java} +Provides: cygwin(cygffi-4.dll) +%endif + +Patch0: config-rpath.patch +Patch1: gcc45-ada.diff +Patch2: gcc45-ehdebug.diff +Patch3: gcc45-libffi.diff +Patch4: gcc45-libstdc.diff +Patch5: gcc45-misc-core.diff +Patch6: gcc45-mnocygwin.diff +Patch7: gcc45-sig-unwind.diff +Patch8: gcc45-cross-libstdc.patch +Patch9: gcc45-cross-ecjx.patch +Patch10: gcc45-java-FIONREAD.diff +Patch11: classpath-0.98-awt.patch + + +%description +Cygwin cross-compiler (GCC) for C. + + +%package -n cygwin-cpp +Summary: Cygwin cross-C Preprocessor +Group: Development/Languages + +%description -n cygwin-cpp +Cygwin cross-C Preprocessor + + +%package c++ +Summary: Cygwin cross-compiler for C++ +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +Provides: cygwin(cygstdc++-6.dll) + +%description c++ +Cygwin cross-compiler for C++. + + +%package objc +Summary: Cygwin cross-compiler support for Objective C +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +Provides: cygwin(cygobjc-2.dll) + +%description objc +Cygwin cross-compiler support for Objective C. + + +%package objc++ +Summary: Cygwin cross-compiler support for Objective C++ +Group: Development/Languages +Requires: %{name}-c++ = %{version}-%{release} +Requires: %{name}-objc = %{version}-%{release} + +%description objc++ +Cygwin cross-compiler support for Objective C++. + + +%package gfortran +Summary: Cygwin cross-compiler for FORTRAN +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +Provides: cygwin(cyggfortran-3.dll) + +%description gfortran +Cygwin cross-compiler for FORTRAN. + + +%package gnat +Summary: Cygwin cross-compiler for Ada +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +# (shared libgnat doesn't work quite right, nor does it cross-build +#Provides: cygwin(cyggnat-4.5.dll) +#Provides: cygwin(cyggnarl-4.5.dll) + +%description gnat +Cygwin cross-compiler for Ada. + + +%package java +Summary: Cygwin cross-compiler for Java +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +#Requires: gcc-java = %{version}-%{release} +Requires: cygwin-libiconv +Requires: cygwin-zlib +# We don't run the automatic dependency scripts which would +# normally detect and provide the following DLL: +Provides: cygwin(cyggcj-11.dll) +Provides: cygwin(cyggcj-noncore-11.dll) +Provides: cygwin(cyggcj-tools-11.dll) +Provides: cygwin(cyggij-11.dll) +Provides: cygwin(cygjvm.dll) + +%description java +Cygwin cross-compiler for Java. + + +%prep +%setup -q -n gcc-%{version} +%setup -q -D -T -b 1 -n gcc-%{version} +%setup -q -D -T -b 2 -n gcc-%{version} +%setup -q -D -T -b 3 -n gcc-%{version} +%if %{build_ada} +%setup -q -D -T -b 4 -n gcc-%{version} +%endif +%if %{build_java} +%setup -q -D -T -b 5 -n gcc-%{version} +%endif +%patch0 -p1 -b .config-rpath~ +%patch2 -p2 -b .ehdebug~ +%patch4 -p2 -b .libstdc~ +%patch5 -p2 -b .misc-core~ +%patch6 -p2 -b .mnocygwin~ +%patch7 -p0 -b .sig-unwind~ +%patch8 -p1 -b .cross-libstdc~ +%if %{build_ada} +%patch1 -p2 -b .ada~ +%endif +%if %{build_java} +%patch3 -p2 -b .libffi~ +%patch9 -p2 -b .cross-ecjx~ +%patch10 -p2 -b .java-fionread~ +%patch11 -p2 -b .awt~ +%endif + +echo 'Fedora Cygwin %{version}-%{release}' > gcc/DEV-PHASE + +# Install python files into _cygwin_datadir +sed -i -e '/^pythondir =/ s|$(datadir)|%{_cygwin_datadir}|' libstdc++-v3/python/Makefile.{am,in} + +%if %{build_java} +# 1) gcc-java does not ship $host-gcj +# 2) $_host != `gcc -dumpmachine` (e.g. i?86-pc-linux-gnu vs. i686-redhat-linux) +sed -i -e '/^GCJ_FOR_ECJX =/ s|\@.*\@|gcj|' libjava/Makefile.in +# make sure libgcj.jar does not collide with native libgcj package +sed -i -e '/^jardir =/ s|= .*|= $(toolexecmainlibdir)|' libjava/Makefile.in +%endif + +%build +mkdir -p build +pushd build + +%if %{build_ada} +enablelada=,ada +%endif +%if %{build_java} +enableljava=,java +%endif + +CC="%{__cc} ${RPM_OPT_FLAGS}" \ +../configure \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --datadir=%{_datadir} \ + --build=%_build --host=%_host \ + --target=%{_cygwin_target} \ + --with-arch=i686 --with-tune=generic \ + --with-gnu-as --with-gnu-ld --verbose \ + --disable-multilib \ + --with-system-zlib \ + --disable-nls --without-included-gettext \ + --disable-win32-registry \ + --enable-threads=posix \ + --enable-version-specific-runtime-libs \ + --with-sysroot=%{_cygwin_sysroot} \ + --enable-shared --enable-shared-libgcc --disable-__cxa_atexit \ + --with-dwarf2 --disable-sjlj-exceptions \ + --enable-languages="c,c++,objc,obj-c++${enableljava},fortran${enablelada},lto" \ + --enable-graphite --enable-lto --disable-symvers \ + --enable-libgomp --enable-libssp \ +%if %{build_ada} + --enable-libada \ +%endif +%if %{build_java} + --enable-libjava \ + --enable-libgcj-sublibs --disable-java-awt --disable-dssi \ + --with-ecj-jar=/usr/share/java/eclipse-ecj.jar \ +%endif + --with-bugurl=http://cygwinports.org + +make %{?_smp_mflags} all + +popd + + +%install +rm -rf $RPM_BUILD_ROOT + +pushd build +make DESTDIR=$RPM_BUILD_ROOT install + +# These files conflict with existing installed files. +rm -rf $RPM_BUILD_ROOT%{_infodir} +rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty* +rm -f $RPM_BUILD_ROOT%{_mandir}/man7/* +%if %{build_java} +rm -fr $RPM_BUILD_ROOT%{_libdir}/gcj-%{version}-* +rm -fr $RPM_BUILD_ROOT%{_libdir}/logging.properties +rm -fr $RPM_BUILD_ROOT%{_libdir}/security/ +rm -f $RPM_BUILD_ROOT%{_datadir}/python/* +%endif + +# These scripts are not intended for cross-compiling scenarios +%if %{build_java} +rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-aot-compile +rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-jcf-dump +rm -f $RPM_BUILD_ROOT%{_bindir}/%{_cygwin_target}-rebuild-gcj-db +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-aot-compile* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-g[^+cfn]* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gc-analyze* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gcj-dbtool* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-gcjh* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-j* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{_cygwin_target}-rebuild-gcj-db* +rm -f $RPM_BUILD_ROOT%{_mandir}/man3/%{_cygwin_target}-ffi* +%endif + +mkdir -p $RPM_BUILD_ROOT/lib +ln -sf ..%{_prefix}/bin/%{_cygwin_target}-cpp \ + $RPM_BUILD_ROOT/lib/%{_cygwin_target}-cpp + +# libtool installs DLL files of runtime libraries into $(libdir)/../bin, +# but we need them in _cygwin_bindir. +mkdir -p $RPM_BUILD_ROOT%{_cygwin_bindir} +mv $RPM_BUILD_ROOT%{_bindir}/*.dll $RPM_BUILD_ROOT%{_cygwin_bindir} + + +%if %{build_java} +# move libffi +mv $RPM_BUILD_ROOT%{_prefix}/%{_cygwin_target}/bin/*.dll \ + $RPM_BUILD_ROOT%{_cygwin_bindir} +# Move libgcj pkg-config files into sysroot +mkdir -p $RPM_BUILD_ROOT%{_cygwin_libdir}/pkgconfig +mv $RPM_BUILD_ROOT%{_libdir}/pkgconfig/* \ + $RPM_BUILD_ROOT%{_cygwin_libdir}/pkgconfig +%endif + +# Don't want the *.la files. +find $RPM_BUILD_ROOT -name '*.la' -delete + +# As of gcc 4.5.0, the plugin/ directory gets created on an i686 host +# but not on x86_64. Excluding it from the package for now. +rm -rf $RPM_BUILD_ROOT%{_libdir}/gcc/%{_cygwin_target}/%{version}/plugin/ + +popd + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%{_bindir}/%{_cygwin_target}-gcc +%{_bindir}/%{_cygwin_target}-gcc-%{version} +%{_bindir}/%{_cygwin_target}-gccbug +%{_bindir}/%{_cygwin_target}-gcov +%if %{build_java} +%{_prefix}/%{_cygwin_target}/lib/libffi.a +%{_prefix}/%{_cygwin_target}/lib/libffi.dll.a +%endif +%{_prefix}/%{_cygwin_target}/lib/libiberty.a +%dir %{_libdir}/gcc/%{_cygwin_target} +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version} +%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtbegin.o +%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtend.o +%{_libdir}/gcc/%{_cygwin_target}/%{version}/crtfastmath.o +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc_eh.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcc_s.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcov.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgomp.spec +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp_nonshared.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libssp.dll.a +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include/ssp +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed/README +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include-fixed/*.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/[^j]*.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/ssp/*.h +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/install-tools +%{_libdir}/gcc/%{_cygwin_target}/%{version}/install-tools/* +%dir %{_libexecdir}/gcc/%{_cygwin_target}/%{version}/install-tools +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/install-tools/* +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/lto1 +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/lto-wrapper +%if %{build_java} +%{_cygwin_bindir}/cygffi-4.dll +%endif +%{_cygwin_bindir}/cyggcc_s-1.dll +%{_cygwin_bindir}/cyggomp-1.dll +%{_cygwin_bindir}/cygssp-0.dll +%{_mandir}/man1/%{_cygwin_target}-gcc.1* +%{_mandir}/man1/%{_cygwin_target}-gcov.1* +%{_cygwin_datadir}/gcc-%{version}/ + + +%files -n cygwin-cpp +%defattr(-,root,root,-) +/lib/%{_cygwin_target}-cpp +%{_bindir}/%{_cygwin_target}-cpp +%{_mandir}/man1/%{_cygwin_target}-cpp.1* +%dir %{_libdir}/gcc/%{_cygwin_target} +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version} +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1 + + +%files c++ +%defattr(-,root,root,-) +%{_bindir}/%{_cygwin_target}-g++ +%{_bindir}/%{_cygwin_target}-c++ +%{_mandir}/man1/%{_cygwin_target}-g++.1* +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/[^gjos]* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/os* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/s[^u]* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libstdc++.dll.a-gdb.py +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libsupc++.a +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1plus +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/collect2 +%{_cygwin_bindir}/cygstdc++-6.dll + + +%files objc +%defattr(-,root,root,-) +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/objc/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libobjc.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libobjc.dll.a +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1obj +%{_cygwin_bindir}/cygobjc-2.dll + + +%files objc++ +%defattr(-,root,root,-) +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/cc1objplus + + +%files gfortran +%defattr(-,root,root,-) +%{_bindir}/%{_cygwin_target}-gfortran +%{_mandir}/man1/%{_cygwin_target}-gfortran.1* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortran.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortran.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgfortranbegin.a +%dir %{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude +%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.f90 +%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib.mod +%{_libdir}/gcc/%{_cygwin_target}/%{version}/finclude/omp_lib_kinds.mod +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/f951 +%{_cygwin_bindir}/cyggfortran-3.dll + + +%if %{build_ada} +%files gnat +%defattr(-,root,root,-) +%{_bindir}/%{_cygwin_target}-gnat* +%{_mandir}/man1/%{_cygwin_target}-gnat*.1* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/adainclude/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/adalib/ +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/gnat1 +#%{_cygwin_bindir}/cyggnarl-4.5.dll +#%{_cygwin_bindir}/cyggnat-4.5.dll +%endif + + +%if %{build_java} +%files java +%defattr(-,root,root,-) +%{_bindir}/%{_cygwin_target}-gcj +%{_mandir}/man1/%{_cygwin_target}-gcj.1* +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/gcj/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/gnu/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/java/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/javax/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/org/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/c++/sun/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/gcj/ +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jawt*.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jni*.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/include/jvmpi.h +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-%{version}.jar +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-noncore.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-noncore.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj.spec +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-tools.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-tools.dll.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgcj-tools-%{version}.jar +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgij.a +%{_libdir}/gcc/%{_cygwin_target}/%{version}/libgij.dll.a +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/ecj1 +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/jc1 +%{_libexecdir}/gcc/%{_cygwin_target}/%{version}/jvgenmain +%{_cygwin_bindir}/cyggcj-11.dll +%{_cygwin_bindir}/cyggcj-noncore-11.dll +%{_cygwin_bindir}/cyggcj-tools-11.dll +%{_cygwin_bindir}/cyggij-11.dll +%{_cygwin_bindir}/cygjvm.dll +%{_cygwin_libdir}/pkgconfig/libgcj-4.5.pc +%endif + + +%changelog +* Wed Feb 16 2011 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> - 4.5.2-1 +- Initial RPM release, largely based on mingw32-gcc. |