]> git.pld-linux.org Git - packages/crossmingw32-gcc.git/blobdiff - crossmingw32-gcc.spec
- tabs in preamble
[packages/crossmingw32-gcc.git] / crossmingw32-gcc.spec
index d0297c01494430696f2b538bca533274d8962d52..f017a37b41c943e9c0c4ae766ec9af59f3883bc3 100644 (file)
@@ -1,49 +1,50 @@
-%bcond_with     bootstrap
-%define                DASHED_SNAP     %{nil}
-%define                SNAP            %(echo %{DASHED_SNAP} | sed -e "s#-##g")
-%define                GCC_VERSION     3.3.2
-%define        apiver  2.4
-%define        apisrc  w32api-%{apiver}
-%define runver 3.2
-%define        runsrc  mingw-runtime-%{runver}
+#
+# Conditional build:
+%bcond_with    bootstrap       # bootstrap build (using binary w32api/mingw)
+#
 Summary:       Cross Mingw32 GNU binary utility development utilities - gcc
-Summary(es):   Utilitarios para desarrollo de binarios de la GNU - Mingw32 gcc
-Summary(fr):   Utilitaires de développement binaire de GNU - Mingw32 gcc
-Summary(pl):   Skro¶ne narzêdzia programistyczne GNU dla Mingw32 - gcc
-Summary(pt_BR): Utilitários para desenvolvimento de binários da GNU - Mingw32 gcc
-Summary(tr):    GNU geliþtirme araçlarý - Mingw32 gcc
+Summary(es.UTF-8):     Utilitarios para desarrollo de binarios de la GNU - Mingw32 gcc
+Summary(fr.UTF-8):     Utilitaires de développement binaire de GNU - Mingw32 gcc
+Summary(pl.UTF-8):     Skrośne narzędzia programistyczne GNU dla Mingw32 - gcc
+Summary(pt_BR.UTF-8):  Utilitários para desenvolvimento de binários da GNU - Mingw32 gcc
+Summary(tr.UTF-8):     GNU geliştirme araçları - Mingw32 gcc
 Name:          crossmingw32-gcc
-Version:       %{GCC_VERSION}
-Release:       1
+Version:       4.1.1
+Release:       2
 Epoch:         1
 License:       GPL
 Group:         Development/Languages
-Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/gcc-%{GCC_VERSION}.tar.bz2
-# Source0-md5: 65999f654102f5438ac8562d13a6eced
-Source1:       http://dl.sourceforge.net/mingw/%{apisrc}.tar.gz
-# Source1-md5: 9f9b9a7a7ef14e112924fea46b3360ce
-Source2:       http://dl.sourceforge.net/mingw/%{runsrc}.tar.gz
-# Source2-md5: ecfd49e08f20a88b7ba11a755f2b53c2
-Patch0:                %{name}-noioctl.patch
+Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
+# Source0-md5: ad9f97a4d04982ccf4fd67cb464879f3
+%define                apiver  3.7
+Source1:       http://dl.sourceforge.net/mingw/w32api-%{apiver}.tar.gz
+# Source1-md5: 0b3a6d08136581c93b3a3207588acea9
+%define                runver  3.10
+Source2:       http://dl.sourceforge.net/mingw/mingw-runtime-%{runver}.tar.gz
+# Source2-md5: 7fa2638d23136fd84d5d627bef3b408a
+Patch0:                gcc-nodebug.patch
+Patch1:                %{name}-noioctl.patch
 BuildRequires: autoconf
 BuildRequires: automake
 BuildRequires: bison
-BuildRequires: crossmingw32-binutils >= 2.14.90.0.4.1-2
+BuildRequires: crossmingw32-binutils >= 2.15.91.0.2-2
 BuildRequires: flex
-%if %{without bootstrap}
-BuildRequires: crossmingw32-runtime >= 3.0
-BuildRequires: crossmingw32-w32api >= 2.3
+%if !%{with bootstrap}
+BuildRequires: crossmingw32-runtime >= 3.5
+BuildRequires: crossmingw32-w32api >= 3.1
 %endif
-Requires:      crossmingw32-binutils >= 2.14.90.0.4.1-2
+BuildRequires: mpfr-devel
+Requires:      crossmingw32-binutils >= 2.15.91.0.2-2
+Requires:      gcc-dirs
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                no_install_post_strip   1
-
 %define                target          i386-mingw32
 %define                target_platform i386-pc-mingw32
 %define                arch            %{_prefix}/%{target}
-%define                gccarch         %{_libdir}/gcc-lib/%{target}
-%define                gcclib          %{_libdir}/gcc-lib/%{target}/%{version}
+%define                gccarch         %{_libdir}/gcc/%{target}
+%define                gcclib          %{gccarch}/%{version}
+
+%define                _noautostrip    .*/lib.*\\.a    
 
 %description
 crossmingw32 is a complete cross-compiling development system for
@@ -54,24 +55,24 @@ with supporting Win32 libraries in 'coff' format from free sources.
 
 This package contains cross targeted gcc.
 
-%description -l de
-Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
-i386-Rechner Code für Win32 zu generieren.
+%description -l de.UTF-8
+Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
+anderem Rechner Code für Win32 zu generieren.
 
-%description -l pl
-crossmingw32 jest kompletnym systemem do kompilacji skronej,
-pozwalaj±cym budowaæ aplikacje MS Windows pod Linuksem u¿ywaj±c
-bibliotek Mingw32. System sk³ada siê z binutils, gcc z g++ i objc,
-libstdc++ - wszystkie generuj±ce kod dla platformy i386-mingw32, oraz
+%description -l pl.UTF-8
+crossmingw32 jest kompletnym systemem do kompilacji skrośnej,
+pozwalającym budować aplikacje MS Windows pod Linuksem używając
+bibliotek Mingw32. System składa się z binutils, gcc z g++ i objc,
+libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz
 z bibliotek w formacie COFF.
 
-Ten pakiet zawiera gcc generuj±ce skro¶nie kod dla Win32.
+Ten pakiet zawiera gcc generujące skrośnie kod dla Win32.
 
 %package c++
 Summary:       Mingw32 binary utility development utilities - g++
-Summary(pl):   Zestaw narzêdzi mingw32 - g++
+Summary(pl.UTF-8):     Zestaw narzędzi mingw32 - g++
 Group:         Development/Languages
-Requires:      %{name} = %{epoch}:%{version}
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 
 %description c++
 crossmingw32 is a complete cross-compiling development system for
@@ -82,22 +83,22 @@ with supporting Win32 libraries in 'coff' format from free sources.
 
 This package contains cross targeted g++ and (static) libstdc++.
 
-%description c++ -l pl
-crossmingw32 jest kompletnym systemem do kompilacji skronej,
-pozwalaj±cym budowaæ aplikacje MS Windows pod Linuksem u¿ywaj±c
-bibliotek mingw32. System sk³ada siê z binutils, gcc z g++ i objc,
-libstdc++ - wszystkie generuj±ce kod dla platformy i386-mingw32, oraz
+%description c++ -l pl.UTF-8
+crossmingw32 jest kompletnym systemem do kompilacji skrośnej,
+pozwalającym budować aplikacje MS Windows pod Linuksem używając
+bibliotek mingw32. System składa się z binutils, gcc z g++ i objc,
+libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz
 z bibliotek w formacie COFF.
 
-Ten pakiet zawiera g++ generuj±ce kod pod Win32 oraz bibliotekê
+Ten pakiet zawiera g++ generujące kod pod Win32 oraz bibliotekę
 libstdc++.
 
 # does this even work?
 %package objc
 Summary:       Mingw32 binary utility development utilities - objc
-Summary(pl):   Zestaw narzêdzi mingw32 - objc
+Summary(pl.UTF-8):     Zestaw narzędzi mingw32 - objc
 Group:         Development/Languages
-Requires:      %{name} = %{epoch}:%{version}
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 
 %description objc
 crossmingw32 is a complete cross-compiling development system for
@@ -106,48 +107,49 @@ the Mingw32 build libraries. This includes a binutils, gcc with g++
 and objc, and libstdc++, all cross targeted to i386-mingw32, along
 with supporting Win32 libraries in 'coff' format from free sources.
 
-This package contains cross targeted objc.
+This package contains cross targeted objc compiler.
 
-%description objc -l pl
-crossmingw32 jest kompletnym systemem do kompilacji skronej,
-pozwalaj±cym budowaæ aplikacje MS Windows pod Linuksem u¿ywaj±c
-bibliotek mingw32. System sk³ada siê z binutils, gcc z g++ i objc,
-libstdc++ - wszystkie generuj±ce kod dla platformy i386-mingw32, oraz
+%description objc -l pl.UTF-8
+crossmingw32 jest kompletnym systemem do kompilacji skrośnej,
+pozwalającym budować aplikacje MS Windows pod Linuksem używając
+bibliotek mingw32. System składa się z binutils, gcc z g++ i objc,
+libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz
 z bibliotek w formacie COFF.
 
-Ten pakiet zawiera kompilator objc generuj±cy kod pod Win32.
+Ten pakiet zawiera kompilator objc generujący kod pod Win32.
 
 # does this even work?
-%package g77
-Summary:       Mingw32 binary utility development utilities - g77
-Summary(pl):   Zestaw narzêdzi mingw32 - g77
+%package fortran
+Summary:       Mingw32 binary utility development utilities - Fortran
+Summary(pl.UTF-8):     Zestaw narzędzi mingw32 - Fortran
 Group:         Development/Languages
-Requires:      %{name} = %{epoch}:%{version}
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Obsoletes:     crossmingw32-gcc-g77
 
-%description g77
+%description fortran
 crossmingw32 is a complete cross-compiling development system for
 building stand-alone Microsoft Windows applications under Linux using
 the Mingw32 build libraries. This includes a binutils, gcc with g++
 and objc, and libstdc++, all cross targeted to i386-mingw32, along
 with supporting Win32 libraries in 'coff' format from free sources.
 
-This package contains cross targeted g77.
+This package contains cross targeted Fortran compiler.
 
-%description g77 -l pl
-crossmingw32 jest kompletnym systemem do kompilacji skronej,
-pozwalaj±cym budowaæ aplikacje MS Windows pod Linuksem u¿ywaj±c
-bibliotek mingw32. System sk³ada siê z binutils, gcc z g++ i objc,
-libstdc++ - wszystkie generuj±ce kod dla platformy i386-mingw32, oraz
+%description fortran -l pl.UTF-8
+crossmingw32 jest kompletnym systemem do kompilacji skrośnej,
+pozwalającym budować aplikacje MS Windows pod Linuksem używając
+bibliotek mingw32. System składa się z binutils, gcc z g++ i objc,
+libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz
 z bibliotek w formacie COFF.
 
-Ten pakiet zawiera g77 generuj±cy kod pod Win32.
+Ten pakiet zawiera kompilator Fortranu generujący kod pod Win32.
 
 # does this even work?
 %package java
-Summary:       Mingw32 binary utility development utilities - java
-Summary(pl):   Zestaw narzêdzi mingw32 - java
+Summary:       Mingw32 binary utility development utilities - Java
+Summary(pl.UTF-8):     Zestaw narzędzi mingw32 - Java
 Group:         Development/Languages
-Requires:      %{name} = %{epoch}:%{version}
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 
 %description java
 crossmingw32 is a complete cross-compiling development system for
@@ -156,30 +158,29 @@ the Mingw32 build libraries. This includes a binutils, gcc with g++
 and objc, and libstdc++, all cross targeted to i386-mingw32, along
 with supporting Win32 libraries in 'coff' format from free sources.
 
-This package contains cross targeted java.
+This package contains cross targeted Java compiler.
 
-%description java -l pl
+%description java -l pl.UTF-8
 
-crossmingw32 jest kompletnym systemem do kompilacji skronej,
-pozwalaj±cym budowaæ aplikacje MS Windows pod Linuksem u¿ywaj±c
-bibliotek mingw32. System sk³ada siê z binutils, gcc z g++ i objc,
-libstdc++ - wszystkie generuj±ce kod dla platformy i386-mingw32, oraz
+crossmingw32 jest kompletnym systemem do kompilacji skrośnej,
+pozwalającym budować aplikacje MS Windows pod Linuksem używając
+bibliotek mingw32. System składa się z binutils, gcc z g++ i objc,
+libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz
 z bibliotek w formacie COFF.
 
-Ten pakiet zawiera kompilator Javy generuj±cy kod pod Win32.
+Ten pakiet zawiera kompilator Javy generujący kod pod Win32.
 
 %prep
-%setup -q -c
-cd gcc-%{version}
+%setup -q -n gcc-%{version}
 %if %{with bootstrap}
 mkdir winsup
 tar xzf %{SOURCE1} -C winsup
 tar xzf %{SOURCE2} -C winsup
 %endif
-%patch -p1
+#{!?debug:%patch0 -p1}
+%patch1 -p1
 
 %build
-cd gcc-%{version}
 %if %{with bootstrap}
 for tool in as ar dlltool ld nm ranlib strip ; do
        ln -sf %{arch}/bin/$tool winsup/bin/$tool
@@ -192,14 +193,20 @@ build_tooldir=%{arch}
 cp /usr/share/automake/config.sub .
 cp /usr/share/automake/config.sub boehm-gc
 
-rm -rf obj-%{target_platform} && install -d obj-%{target_platform} && cd obj-%{target_platform}
+rm -rf obj-%{target_platform}
+install -d obj-%{target_platform}
+cd obj-%{target_platform}
 
-# note: alpha's -mieee is not valid for target's g++
+# note: alpha's -mieee and sparc's -mtune=* are not valid for target's g++
 CFLAGS="%{rpmcflags}" \
 %ifarch alpha
-CXXFLAGS="`echo '%{rpmcflags}' | sed -e 's/ \?-mieee\>//'`"  \
+CXXFLAGS="`echo '%{rpmcflags}' | sed -e 's/ \?-mieee\>//'`" \
+%else
+%ifarch sparc sparc64 sparcv9
+CXXFLAGS="`echo '%{rpmcflags}' | sed -e 's/ \?-mtune[=0-9a-z]*//'`" \
 %else
-CXXFLAGS="%{rpmcflags}"  \
+CXXFLAGS="%{rpmcflags}" \
+%endif
 %endif
 LDFLAGS="%{rpmldflags}" \
 TEXCONFIG=false \
@@ -208,35 +215,24 @@ TEXCONFIG=false \
        --infodir=%{_infodir} \
        --mandir=%{_mandir} \
        --bindir=%{arch}/bin \
+       --libdir=%{_libdir} \
+       --libexecdir=%{_libexecdir} \
        --includedir=%{arch}/include \
-       --enable-languages="c,c++,f77,java,objc" \
+       --disable-shared \
+       --enable-threads \
+       --enable-languages="c,c++,fortran,java,objc" \
+       --enable-c99 \
+       --enable-long-long \
+       --disable-nls \
        --with-gnu-as \
        --with-gnu-ld \
+       --with-mangler-in-ld \
        --with-gxx-include-dir=%{arch}/include/g++ \
-       --enable-threads \
        --build=%{_target_platform} \
        --host=%{_target_platform} \
        --target=%{target}
 
-#touch ../gcc/c-gperf.h
-
-%{__make} \
-       LDFLAGS_FOR_TARGET="%{rpmldflags}" \
-       TARGET_LIBGCC2_CFLAGS="-UCROSS_COMPILE" \
-       build_tooldir="$build_tooldir" \
-       FLAGS_FOR_TARGET="-B${build_tooldir}/bin -B${build_tooldir}/lib -isystem ${build_tooldir}/include -nostdinc" \
-       CFLAGS_FOR_TARGET="-nostdinc" \
-       NM_FOR_TARGET="%{target}-nm"
-
-# build libobjc.dll for Objective C
-# to trzeba wywo³ywaæ z katalogu obj-%{target_platform}/%{target}/libobjc
-# ale trzeba podaæ jeszcze GCC_FOR_TARGET - a mi siê nie chce.
-# BTW, ten dll jest do czego¶ potrzebny???
-#
-#make -C %{target}/libobjc \
-#      LDFLAGS="%{rpmldflags}" \
-#      TARGET_LIBGCC2_CFLAGS="-UCROSS_COMPILE" \
-#      DLLTOOL="%{target}-dlltool --as=%{target}-as" libobjc.dll
+%{__make} all
 
 # spec files for msvcrt*.dll configurations
 cd gcc
@@ -246,10 +242,8 @@ done
 
 %install
 rm -rf $RPM_BUILD_ROOT
-cd gcc-%{version}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}}
 
-install -d $RPM_BUILD_ROOT%{_bindir}
-install -d $RPM_BUILD_ROOT%{_datadir}
 cd obj-%{target_platform}
 
 %{__make} install \
@@ -264,16 +258,22 @@ mv -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-* $RPM_BUILD_ROOT%{_bindir}
 # already in arch/lib, shouldn't be here
 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
 
+# include/ contains install-tools/include/* and headers that were fixed up
+# by fixincludes, we don't want former
+gccdir=$RPM_BUILD_ROOT%{gcclib}
+mkdir  $gccdir/tmp
+# we have to save these however
+mv -f  $gccdir/include/syslimits.h $gccdir/tmp
+rm -rf $gccdir/include
+mv -f  $gccdir/tmp $gccdir/include
+cp -f  $gccdir/install-tools/include/*.h $gccdir/include
+# but we don't want anything more from install-tools
+rm -rf $gccdir/install-tools
+
 %if 0%{!?debug:1}
-# strip linux binaries
-strip -R .comment -R .note \
-       `echo $RPM_BUILD_ROOT{%{_bindir}/*,%{arch}/bin/*} | grep -v gccbug` \
-       $RPM_BUILD_ROOT%{gcclib}/{cc1*,f771,jc1,jvgenmain}
-
-# strip mingw32 libraries
-%{target}-strip -g \
-       $RPM_BUILD_ROOT%{gcclib}/libgcc.a \
-       $RPM_BUILD_ROOT%{arch}/%{_lib}/lib*.a
+%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a
+%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a
+%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{arch}/lib/lib*.a
 %endif
 
 # restore hardlinks
@@ -292,52 +292,72 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/%{target}-cpp
 %attr(755,root,root) %{_bindir}/%{target}-gcov
 %attr(755,root,root) %{arch}/bin/gcc
-%{arch}/%{_lib}/libiberty.a
+%{arch}/lib/libiberty.a
 
 %dir %{gccarch}
 %dir %{gcclib}
 %attr(755,root,root) %{gcclib}/cc1
+%attr(755,root,root) %{gcclib}/collect2
 %{gcclib}/libgcc.a
+%{gcclib}/libgcov.a
 %{gcclib}/specs*
 %{gcclib}/include
 
+%{_mandir}/man1/%{target}-cpp.1*
 %{_mandir}/man1/%{target}-gcc.1*
+%{_mandir}/man1/%{target}-gcov.1*
+
+%{arch}/lib/libssp.a
+%{arch}/lib/libssp.la
+%{arch}/lib/libssp_nonshared.a
+%{arch}/lib/libssp_nonshared.la
 
 %files c++
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/%{target}-[cg]++
 %attr(755,root,root) %{arch}/bin/[cg]++
 %attr(755,root,root) %{gcclib}/cc1plus
-%{arch}/%{_lib}/libstdc++.a
-%{arch}/%{_lib}/libstdc++.la
-%{arch}/%{_lib}/libsupc++.a
-%{arch}/%{_lib}/libsupc++.la
+%{arch}/lib/libstdc++.a
+%{arch}/lib/libstdc++.la
+%{arch}/lib/libsupc++.a
+%{arch}/lib/libsupc++.la
 %{arch}/include/g++
 %{_mandir}/man1/%{target}-g++.1*
 
 %files objc
 %defattr(644,root,root,755)
 %attr(755,root,root) %{gcclib}/cc1obj
-%{arch}/%{_lib}/libobjc.a
-%{arch}/%{_lib}/libobjc.la
+%{arch}/lib/libobjc.a
+%{arch}/lib/libobjc.la
 
-%files g77
+%files fortran
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/%{target}-g77
-%attr(755,root,root) %{gcclib}/f771
-%{arch}/%{_lib}/libfrtbegin.a
-%{arch}/%{_lib}/libg2c.a
-%{arch}/%{_lib}/libg2c.la
-%{_mandir}/man1/%{target}-g77.1*
+%attr(755,root,root) %{_bindir}/%{target}-gfortran
+%attr(755,root,root) %{arch}/bin/gfortran
+%attr(755,root,root) %{gcclib}/f951
+%{arch}/lib/libgfortran.a
+%{arch}/lib/libgfortran.la
+%{arch}/lib/libgfortranbegin.a
+%{arch}/lib/libgfortranbegin.la
+%{_mandir}/man1/%{target}-gfortran.1*
 
 %files java
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/%{target}-gcj
 %attr(755,root,root) %{_bindir}/%{target}-gcjh
+%attr(755,root,root) %{_bindir}/%{target}-gjnih
+%attr(755,root,root) %{_bindir}/%{target}-grepjar
+%attr(755,root,root) %{_bindir}/%{target}-fastjar
 %attr(755,root,root) %{_bindir}/%{target}-jcf-dump
 %attr(755,root,root) %{_bindir}/%{target}-jv-scan
-%attr(755,root,root) %{arch}/bin/grepjar
-%attr(755,root,root) %{arch}/bin/jar
+#%attr(755,root,root) %{arch}/bin/grepjar
+#%attr(755,root,root) %{arch}/bin/jar
 %attr(755,root,root) %{gcclib}/jc1
 %attr(755,root,root) %{gcclib}/jvgenmain
 %{_mandir}/man1/%{target}-gcj.1*
+%{_mandir}/man1/%{target}-gcjh.1*
+%{_mandir}/man1/%{target}-gjnih.1*
+%{_mandir}/man1/%{target}-grepjar.1*
+%{_mandir}/man1/%{target}-fastjar.1*
+%{_mandir}/man1/%{target}-jcf-dump.1*
+%{_mandir}/man1/%{target}-jv-scan.1*
This page took 0.12313 seconds and 4 git commands to generate.