X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=crossmingw32-gcc.spec;h=f017a37b41c943e9c0c4ae766ec9af59f3883bc3;hb=34f34e0da3bfb795fb8acdbab2cb41f37e54d34f;hp=d0297c01494430696f2b538bca533274d8962d52;hpb=35d92c9a37ca9c9baedc0e343e2364140f1ff486;p=packages%2Fcrossmingw32-gcc.git diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index d0297c0..f017a37 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -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 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 +%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 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 +%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 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 +%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 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 +%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 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 +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*