]> git.pld-linux.org Git - packages/gcc4.git/blobdiff - gcc4.spec
- proper symlink /lib/cpp (not only for %with_ada)
[packages/gcc4.git] / gcc4.spec
index d3178ef2d72f84db64cf94f89dc3e3af7f286062..7e1bf9b6ac67d55240778bef7d5bca437efb29c8 100644 (file)
--- a/gcc4.spec
+++ b/gcc4.spec
@@ -1,25 +1,39 @@
+#
+# Conditional build:
+%bcond_without ada             # build without ADA support
+%bcond_without fortran         # build without Fortran support
+%bcond_without java            # build without Java support
+%bcond_without objc            # build without ObjC support
+
+%bcond_with    bootstrap
+
+%if %{with bootstrap}
+%undefine      with_fortran
+%undefine      with_java
+%undefine      with_objc
+%endif
+
 #
 # TODO:
-#              - http://gcc.gnu.org/PR11203
-#              - http://gcc.gnu.org/PR18648
+#              - http://gcc.gnu.org/PR11203 (inline-asm)
+#              - http://gcc.gnu.org/PR18648 (missed tree-optimization)
 #              - disable internal zlib usage
-#              - obsoletes
-#              - bconds
 #              - translations from gcc.spec:HEAD
 #
-%define                _snap           20041205
+%define                _snap           20050213
 #
 Summary:       GNU Compiler Collection: the C compiler and shared files
 Summary(pl):   Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
 Name:          gcc
+Epoch:         5
 Version:       4.0.0
-Release:       0.%{_snap}.0.1
+Release:       0.%{_snap}.1
 License:       GPL
 Group:         Development/Languages
 #Source0:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
 #Source0:      ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
 Source0:       ftp://gcc.gnu.org/pub/gcc/snapshots/4.0-%{_snap}/%{name}-4.0-%{_snap}.tar.bz2
-# Source0-md5: 18a3dfafa963ba3b8111a86c7ddeba05
+# Source0-md5: 56c68edf4047dc42aeda22186cedb40b
 Patch0:                %{name}-info.patch
 Patch1:                %{name}-nolocalefiles.patch
 Patch2:                %{name}-nodebug.patch
@@ -32,8 +46,10 @@ BuildRequires:       binutils >= 2:2.15.94.0.1
 BuildRequires: bison
 BuildRequires: fileutils >= 4.0.41
 BuildRequires: flex
+%if %{with ada}
 BuildRequires: gcc(ada)
 BuildRequires: gcc-ada
+%endif
 BuildRequires: gettext-devel
 BuildRequires: glibc-devel >= 2.2.5-20
 BuildRequires: gmp-devel
@@ -44,7 +60,12 @@ BuildRequires:       zlib-devel
 Requires:      binutils >= 2:2.15.94.0.1
 Requires:      libgcc = %{epoch}:%{version}-%{release}
 Provides:      cpp = %{epoch}:%{version}-%{release}
-Provides:      gcc(ada)
+%{?with_ada:Provides:  gcc(ada)}
+Obsoletes:     cpp
+Obsoletes:     egcs-cpp
+Obsoletes:     gcc-cpp
+Obsoletes:     gcc-ksi
+Obsoletes:     gont
 Conflicts:     glibc-devel < 2.2.5-20
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -70,6 +91,7 @@ z GCC, trzeba zainstalowa
 Summary:       Shared gcc library
 Summary(pl):   Biblioteka gcc
 Group:         Libraries
+Obsoletes:     libgcc1
 
 %description -n libgcc
 Shared gcc library.
@@ -111,6 +133,8 @@ Summary(pl):        Obs
 Group:         Development/Languages
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      libgnat = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-gnat
+Obsoletes:     gnat-devel
 
 %description ada
 This package adds experimental support for compiling Ada programs.
@@ -123,6 +147,8 @@ Adzie.
 Summary:       Ada standard libraries
 Summary(pl):   Biblioteki standardowe dla Ady
 Group:         Development/Libraries
+Obsoletes:     gnat
+Obsoletes:     libgnat1
 
 %description -n libgnat
 This package contains shared libraries needed to run programs written
@@ -136,6 +162,7 @@ napisanych w Adzie.
 Summary:       Static Ada standard libraries
 Summary(pl):   Statyczne biblioteki standardowe dla Ady
 Group:         Development/Libraries
+Obsoletes:     gnat-static
 
 %description -n libgnat-static
 This package contains static libraries for programs written in Ada.
@@ -167,6 +194,8 @@ standardowych bibliotek C++, kt
 Summary:       GNU C++ library
 Summary(pl):   Biblioteki GNU C++
 Group:         Libraries
+Obsoletes:     libg++
+Obsoletes:     libstdc++3
 
 %description -n libstdc++
 This is the GNU implementation of the standard C++ libraries, along
@@ -183,7 +212,10 @@ Summary:   Header files and documentation for C++ development
 Summary(pl):   Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
 Group:         Development/Libraries
 Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      glibc-devel
 Requires:      libstdc++ = %{epoch}:%{version}-%{release}
+Obsoletes:     libg++-devel
+Obsoletes:     libstdc++3-devel
 
 %description -n libstdc++-devel
 This is the GNU implementation of the standard C++ libraries. This
@@ -212,6 +244,8 @@ Summary:    Fortran 95 support for gcc
 Summary(pl):   Obs³uga Fortranu 95 dla gcc
 Group:         Development/Languages/Fortran
 Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Obsoletes:     egcs-g77
+Obsoletes:     gcc-g77
 
 %description fortran
 This package adds support for compiling Fortran 95 programs with the
@@ -225,6 +259,7 @@ potrzebny do kompilowania program
 Summary:       Fortran 95 Libraries
 Summary(pl):   Biblioteki Fortranu 95
 Group:         Development/Libraries
+Obsoletes:     libg2c
 
 %description -n libgfortran
 Fortran 95 Libraries.
@@ -237,6 +272,7 @@ Summary:    Static Fortran 95 Libraries
 Summary(pl):   Statyczne Biblioteki Fortranu 95
 Group:         Development/Libraries
 Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Obsoletes:     libg2c-static
 
 %description -n libgfortran-static
 Static Fortran 95 Libraries.
@@ -269,6 +305,7 @@ Summary:    Java Class Libraries
 Summary(pl):   Biblioteki Klas Javy
 Group:         Libraries
 Requires:      zlib
+Obsoletes:     libgcj3
 
 %description -n libgcj
 Java Class Libraries.
@@ -280,8 +317,8 @@ Biblioteki Klas Javy.
 Summary:       Development files for Java Class Libraries
 Summary(pl):   Pliki nag³ówkowe dla Bibliotek Klas Javy
 Group:         Development/Libraries
-Requires:      %{name}-java = %{epoch}:%{version}-%{release}
 Requires:      libgcj = %{epoch}:%{version}-%{release}
+Obsoletes:     libgcj3-devel
 
 %description -n libgcj-devel
 Development files for Java Class Libraries.
@@ -367,6 +404,8 @@ Summary(pl):        Obs
 Group:         Development/Languages
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      libobjc = %{epoch}:%{version}-%{release}
+Obsoletes:     egcc-objc
+Obsoletes:     egcs-objc
 
 %description objc
 This package adds Objective C support to the GNU Compiler Collection.
@@ -384,6 +423,7 @@ standardowej biblioteki objc (kt
 Summary:       Objective C Libraries
 Summary(pl):   Biblioteki Obiektowego C
 Group:         Libraries
+Obsoletes:     libobjc1
 
 %description -n libobjc
 Objective C Libraries.
@@ -445,7 +485,7 @@ TEXCONFIG=false \
        --enable-shared \
        --enable-threads=posix \
        --enable-__cxa_atexit \
-       --enable-languages="c,c++,f95,objc,ada,java" \
+       --enable-languages="c,c++%{?with_fortran:,f95}%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
        --enable-c99 \
        --enable-long-long \
 %ifarch amd64
@@ -456,6 +496,7 @@ TEXCONFIG=false \
        --enable-nls \
        --with-gnu-as \
        --with-gnu-ld \
+       --with-demangler-in-ld \
        --with-system-zlib \
        --with-slibdir=%{_slibdir} \
        --without-x \
@@ -465,10 +506,10 @@ TEXCONFIG=false \
 cd ..
 
 %{__make} -C obj-%{_target_platform} \
-       profiledbootstrap \
+       %{!?with_bootstrap:profiledbootstrap} \
        GCJFLAGS="%{rpmcflags}" \
        BOOT_CFLAGS="%{rpmcflags}" \
-       STAGE1_CFLAGS="%{rpmcflags}" \
+       STAGE1_CFLAGS="%{rpmcflags} -O0" \
        LDFLAGS_FOR_TARGET="%{rpmldflags}" \
        mandir=%{_mandir} \
        infodir=%{_infodir}
@@ -484,17 +525,23 @@ cd obj-%{_target_platform}
        infodir=%{_infodir} \
        DESTDIR=$RPM_BUILD_ROOT
 
+install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version}
+
 %ifarch sparc64
 ln -sf $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
        $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
 %endif
 
+ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
 
+%if %{with fortran}
 ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95
 echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
+%endif
 
+%if %{with ada}
 # move ada shared libraries to proper place...
 mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
        $RPM_BUILD_ROOT%{_libdir}
@@ -504,25 +551,31 @@ ln -sf    libgnat-4.0.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-4.0.so
 ln -sf libgnarl-4.0.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-4.0.so
 ln -sf libgnat-4.0.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
 ln -sf libgnarl-4.0.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
-ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
+%endif
 
 cd ..
 
+%if %{with java}
 install -d java-doc
 cp -f  libjava/READ* java-doc
 cp -f  fastjar/README java-doc/README.fastjar
 cp -f  libffi/README java-doc/README.libffi
 cp -f  libffi/LICENSE java-doc/LICENSE.libffi
+%endif
+%if %{with objc}
 cp -f  libobjc/README gcc/objc/README.libobjc
+%endif
 
 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
-for f in libstdc++.la libsupc++.la libgcj.la;
+for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la};
 do
        perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
 done
 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
-for f in libstdc++.la libsupc++.la libgfortran.la libgfortranbegin.la \
-       libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la libobjc.la;
+for f in libstdc++.la libsupc++.la \
+       %{?with_fortran:libgfortran.la libgfortranbegin.la} \
+       %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
+       %{?with_objc:libobjc.la};
 do
        perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
 done
@@ -532,13 +585,12 @@ done
 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
 mkdir  $gccdir/tmp
 # we have to save these however
-mv -f  $gccdir/include/{gcj,libffi/ffitarget.h,objc,syslimits.h} \
-       $gccdir/tmp
+%{?with_java:mv -f $gccdir/include/{gcj,libffi/ffitarget.h} $gccdir/tmp}
+%{?with_objc:mv -f $gccdir/include/objc        $gccdir/tmp}
+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
+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
 
@@ -546,7 +598,7 @@ rm -rf      $gccdir/install-tools
 %find_lang libstdc\+\+
 
 %clean
-#rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_ROOT
 
 %post
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
@@ -554,6 +606,12 @@ rm -rf     $gccdir/install-tools
 %postun
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
 
+%post ada
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun ada
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
 %post fortran
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
 
@@ -649,6 +707,7 @@ rm -rf      $gccdir/install-tools
 %defattr(644,root,root,755)
 %{_libdir}/libmudflap*.a
 
+%if %{with ada}
 %files ada
 %defattr(644,root,root,755)
 %doc gcc/ada/ChangeLog
@@ -677,6 +736,7 @@ rm -rf      $gccdir/install-tools
 %defattr(644,root,root,755)
 %{_libdir}/gcc/*/*/adalib/libgnarl.a
 %{_libdir}/gcc/*/*/adalib/libgnat.a
+%endif
 
 %files c++
 %defattr(644,root,root,755)
@@ -700,10 +760,12 @@ rm -rf    $gccdir/install-tools
 %doc libstdc++-v3/docs/html
 %dir %{_includedir}/c++
 %{_includedir}/c++/%{version}
+%if %{with java}
 %exclude %{_includedir}/c++/%{version}/java
 %exclude %{_includedir}/c++/%{version}/javax
 %exclude %{_includedir}/c++/%{version}/gcj
 %exclude %{_includedir}/c++/%{version}/gnu
+%endif
 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
 %{_libdir}/libstdc++.la
 %attr(755,root,root) %{_libdir}/libstdc++.so
@@ -712,6 +774,7 @@ rm -rf      $gccdir/install-tools
 %defattr(644,root,root,755)
 %{_libdir}/libstdc++.a
 
+%if %{with fortran}
 %files fortran
 %defattr(644,root,root,755)
 %doc gcc/fortran/ChangeLog
@@ -734,24 +797,26 @@ rm -rf    $gccdir/install-tools
 %files -n libgfortran-static
 %defattr(644,root,root,755)
 %{_libdir}/libgfortran.a
+%endif
 
+%if %{with java}
 %files java
 %defattr(644,root,root,755)
 %doc gcc/java/ChangeLog java-doc/*
 %attr(755,root,root) %{_bindir}/gcj*
 %attr(755,root,root) %{_bindir}/gij
+%attr(755,root,root) %{_bindir}/grepjar
 %attr(755,root,root) %{_bindir}/jcf-dump
 %attr(755,root,root) %{_bindir}/jv-*
-%attr(755,root,root) %{_bindir}/grepjar
 %attr(755,root,root) %{_bindir}/*-gcj*
 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
 %{_infodir}/gcj*
-%{_mandir}/man1/jcf-*
-%{_mandir}/man1/jv-*
-%{_mandir}/man1/gij*
 %{_mandir}/man1/gcj*
+%{_mandir}/man1/gij*
 %{_mandir}/man1/grepjar*
+%{_mandir}/man1/jcf-*
+%{_mandir}/man1/jv-*
 
 %files java-tools
 %defattr(644,root,root,755)
@@ -766,6 +831,7 @@ rm -rf      $gccdir/install-tools
 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
 %attr(755,root,root) %{_bindir}/addr2name.awk
 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libgij.so.*.*.*
 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
 %{_libdir}/logging.properties
 
@@ -778,11 +844,12 @@ rm -rf    $gccdir/install-tools
 %{_libdir}/gcc/*/*/include/gcj
 %dir %{_libdir}/security
 %{_libdir}/security/*
-%dir %{_datadir}/java
-%{_datadir}/java/libgcj*.jar
+%{_javadir}/libgcj*.jar
 %{_libdir}/lib*cj.spec
 %{_libdir}/lib*cj*.la
 %attr(755,root,root) %{_libdir}/lib*cj*.so
+%{_libdir}/libgij.la
+%attr(755,root,root) %{_libdir}/libgij.so
 %attr(755,root,root) %{_libdir}/lib-org-*.so
 %{_libdir}/lib-org-*.la
 %{_pkgconfigdir}/libgcj.pc
@@ -790,6 +857,7 @@ rm -rf      $gccdir/install-tools
 %files -n libgcj-static
 %defattr(644,root,root,755)
 %{_libdir}/lib*cj*.a
+%{_libdir}/libgij.a
 %{_libdir}/lib-org-*.a
 
 %files -n libffi
@@ -807,7 +875,9 @@ rm -rf      $gccdir/install-tools
 %files -n libffi-static
 %defattr(644,root,root,755)
 %{_libdir}/libffi.a
+%endif
 
+%if %{with objc}
 %files objc
 %defattr(644,root,root,755)
 %doc gcc/objc/README
@@ -824,3 +894,4 @@ rm -rf      $gccdir/install-tools
 %files -n libobjc-static
 %defattr(644,root,root,755)
 %{_libdir}/libobjc.a
+%endif
This page took 0.094672 seconds and 4 git commands to generate.