gcc/gcc.spec

Sun, 03 Apr 2011 15:43:53 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sun, 03 Apr 2011 15:43:53 +0200
changeset 338
1153ac6bac7e
parent 337
f71e028eb3e2
child 339
c9103fdfdf0d
permissions
-rw-r--r--

Remove duplicate java and unused include paths, and correct jar path.

     1 ##
     2 ##  gcc.spec -- OpenPKG RPM Package Specification
     3 ##  Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
     4 ##
     5 ##  Permission to use, copy, modify, and distribute this software for
     6 ##  any purpose with or without fee is hereby granted, provided that
     7 ##  the above copyright notice and this permission notice appear in all
     8 ##  copies.
     9 ##
    10 ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    11 ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    12 ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    13 ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    14 ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    15 ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    16 ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    17 ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    18 ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    19 ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    20 ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    21 ##  SUCH DAMAGE.
    22 ##
    24 #   package version
    25 %define       V_full         4.6.0
    26 %define       V_comp         %nil
    28 #   package information
    29 Name:         gcc
    30 Summary:      GNU Compiler Collection
    31 URL:          http://gcc.gnu.org/
    32 Vendor:       Free Software Foundation
    33 Packager:     OpenPKG Foundation e.V.
    34 Distribution: OpenPKG Community
    35 Class:        CORE
    36 Group:        Compiler
    37 License:      GPL
    38 Version:      %{V_full}
    39 Release:      20110332
    41 #   package options
    42 %option       with_binutils  yes
    43 %option       with_cxx       yes
    44 %option       with_objc      no
    45 %option       with_java      no
    46 %option       with_fortran   no
    47 %option       with_optimize  yes
    48 %option       with_profile   no
    49 %option       with_threads   yes
    50 %option       with_multilib  no
    52 #   fix intermodule dependencies implicitly
    53 %if "%{with_java}" == "yes"
    54 %define  with_cxx      yes
    55 %define  with_threads  yes
    56 %endif
    58 #   list of sources
    59 Source0:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-core-%{V_full}.tar.bz2
    60 Source1:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-g++-%{V_full}.tar.bz2
    61 Source2:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-objc-%{V_full}.tar.bz2
    62 Source3:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-java-%{V_full}.tar.bz2
    63 Source4:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-fortran-%{V_full}.tar.bz2
    64 Patch0:       gcc.patch
    66 #   build information
    67 Prefix:       %{l_prefix}
    68 BuildRoot:    %{l_buildroot}
    69 BuildPreReq:  OpenPKG, openpkg >= 20060823, make
    70 PreReq:       OpenPKG, openpkg >= 20060823
    71 BuildPreReq:  mpc, mpfr, gmp
    72 PreReq:       mpc, mpfr, gmp
    73 %if "%{with_binutils}" == "yes"
    74 BuildPreReq:  binutils >= 2.14
    75 PreReq:       binutils >= 2.14
    76 %endif
    77 %if "%{with_cxx}" == "yes"
    78 BuildPreReq:  libiconv
    79 PreReq:       libiconv
    80 %endif
    81 %if "%{with_java}" == "yes"
    82 BuildPreReq:  zlib, infozip
    83 PreReq:       zlib
    84 %endif
    85 AutoReq:      no
    86 AutoReqProv:  no
    88 %description
    89     The GNU Compiler Collection (GCC) provides standard conforming and
    90     highly portable compilers for the ISO C, ISO C++, Objective-C,
    91     Fortran and Java languages.
    93 %track
    94     prog gcc = {
    95         version   = %{V_full}
    96         url       = ftp://gcc.gnu.org/pub/gcc/releases/
    97         regex     = gcc-(4\.\d+\.\d+)
    98         url       = ftp://gcc.gnu.org/pub/gcc/releases/gcc-__NEWVER__/
    99         regex     = gcc-core-(\d+\.\d+\.\d+)\.tar\.bz2
   100     }
   102 %prep
   103     %setup -q
   104 %if "%{with_cxx}" == "yes"
   105     %setup -q -T -D -b 1
   106 %endif
   107 %if "%{with_objc}" == "yes"
   108     %setup -q -T -D -b 2
   109 %endif
   110 %if "%{with_java}" == "yes"
   111     %setup -q -T -D -b 3
   112 %endif
   113 %if "%{with_fortran}" == "yes"
   114     %setup -q -T -D -b 4
   115 %endif
   116     %patch -p0
   117     %{l_shtool} subst \
   118         -e 's;\(instname="\$dir/\$name"\)i;\1;' \
   119         ltmain.sh
   120     %{l_shtool} subst -v -s \
   121         -e 's;\(gmplibs="-lmpc\) \(-lmpfr -lgmp\);\1 -lm \2;' \
   122         configure
   123     %{l_shtool} subst -v -s \
   124         -e 's;\(LDEXP_LIB=\)"$LIBS";\1"$LDFLAGS";' \
   125         -e 's;PREFIX_INCLUDE_DIR;PREFIX_INCLUDE_DIR_DISABLED;g' \
   126         gcc/configure
   127     %{l_shtool} subst \
   128         -e 's;[ \t]*-W[a-zA-Z0-9_\-][a-zA-Z0-9_\-]*,*;;g' \
   129         lto-plugin/Makefile.in
   130     %{l_shtool} subst \
   131         -e 's;-rpath  *[^ \t][^ \t]*;;g' \
   132         -e 's;--tag=disable-static;--tag=disable-shared;g' \
   133         -e 's;\.\./libiberty/libiberty\.a;-L../libiberty -liberty;g' \
   134         -e 's;\.\./libiberty/pic/libiberty\.a;-L../libiberty/pic -liberty;g' \
   135         lto-plugin/Makefile.in
   136 %if "%{with_cxx}" == "yes"
   137     %{l_shtool} subst \
   138         -e 's;\(pythondir *= *\$(datadir)\)/gcc-\$(gcc_version);\1/gcc;' \
   139         libstdc++-v3/python/Makefile.in
   140 %endif
   141 %if "%{with_java}" == "yes"
   142     %{l_shtool} subst \
   143         -e 's;\(default_python_dir\) *=.*;\1=/share/gcc/python/libjava;' \
   144         libjava/configure
   145     %{l_shtool} subst \
   146         -e 's;JAR *= *@JAR@;JAR = $(here)/scripts/jar;' \
   147         -e 's;\(jardir *= *\$(datadir)\)/java;\1/gcc/java;' \
   148         libjava/Makefile.in
   149 %endif
   150     if [ ".%{V_comp}" != . ]; then
   151         %{l_shtool} subst -v -s \
   152             -e 's;(libdir)/gcc/;(libdir)/gcc%{V_comp}/;' \
   153             -e 's;(libexecdir)/gcc/;(libexecdir)/gcc%{V_comp}/;' \
   154             `find . -name Makefile.in -type f -print`
   155     fi
   156     %{l_shtool} subst \
   157         -e 's;^\(do-compare\) *\(=.*\);#\1-shouldnt-be-defined-here \2;' \
   158         config/*.mk
   159     case "%{l_platform -t}" in
   160         amd64-linux* )
   161             %{l_shtool} subst \
   162                 -e 's/GLIBCXX_IS_NATIVE=false/GLIBCXX_IS_NATIVE=true/g' \
   163                 -e 's/test x.gcc_no_link = xyes/false/g' \
   164                 libstdc++-v3/configure
   165             ;;
   166     esac
   167     %{l_shtool} subst \
   168         -e 's;<iconv\.h>;"%{l_prefix}/include/iconv.h";' \
   169         libstdc++-v3/include/ext/codecvt_specializations.h
   170     %{l_shtool} subst \
   171         -e 's;.*with_arch_32=\${with_arch_32:-pentium4}.*;;' \
   172         -e 's;with_arch_32=\${with_arch_32:-pentiumpro};arch_without_sse2=yes;' \
   173         gcc/config.gcc
   175 %build
   176     #   create build subdirectory
   177     %{l_shtool} mkdir -p objbld
   178     cd objbld
   180     #   locate ld(1) and as(1) accordingly
   181 %if "%{with_binutils}" == "yes"
   182     #   allow OpenPKG binutils
   183     LD=%{l_tool_locate ld ld}
   184     AS=%{l_tool_locate as as}
   185 %else
   186     #   ignore OpenPKG binutils
   187     LD=`PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/bin:/opt/sbin:/usr/local/bin:/usr/local/sbin which ld`
   188     AS=`PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/bin:/opt/sbin:/usr/local/bin:/usr/local/sbin which as`
   189 %endif
   190     l_with_gnu_ld_as=""
   191     echo $LD | grep '^/' >/dev/null && l_with_gnu_ld_as="--with-ld=$LD"
   192     echo $AS | grep '^/' >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-as=$AS"
   193     $LD --version </dev/null 2>/dev/null | grep "^GNU ld"        >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-gnu-ld" || l_with_gnu_ld_as="${l_with_gnu_ld_as} --without-gnu-ld"
   194     $AS --version </dev/null 2>/dev/null | grep "^GNU assembler" >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-gnu-as" || l_with_gnu_ld_as="${l_with_gnu_ld_as} --without-gnu-as"
   196     #   determine threads use
   197 %if "%{with_threads}" == "yes"
   198     l_enable_threads="posix"
   199 %else
   200     l_enable_threads="single"
   201 %endif
   203     #   determine language use
   204     l_enable_languages="c"
   205 %if "%{with_cxx}" == "yes"
   206     l_enable_languages="${l_enable_languages},c++"
   207 %endif
   208 %if "%{with_objc}" == "yes"
   209     l_enable_languages="${l_enable_languages},objc"
   210 %endif
   211 %if "%{with_java}" == "yes"
   212     l_enable_languages="${l_enable_languages},java"
   213 %endif
   214 %if "%{with_fortran}" == "yes"
   215     l_enable_languages="${l_enable_languages},f95"
   216 %endif
   218     #   disable GNU iconv use
   219     ( echo "am_cv_func_iconv=no"
   220       echo "am_cv_lib_iconv=no"
   221     ) >config.cache
   222     #   platforms failing 'compare' make target (see prep as well)
   223     case "%{l_platform -t}" in
   224         *i?86-sunos*  ) echo "gcc_cv_prog_cmp_skip=true" >>config.cache ;;
   225         *amd64-linux* ) echo "gcc_cv_prog_cmp_skip=true" >>config.cache ;;
   226     esac
   228     #   configure the package
   229     LD="$LD" \
   230     AS="$AS" \
   231     CC="%{l_cc}" \
   232     CFLAGS="%{l_cflags}" \
   233 %if "%{with_cxx}" == "yes"
   234     CPPFLAGS="%{l_cppflags}" \
   235     LDFLAGS="%{l_ldflags}" \
   236 %endif
   237     CONFIG_SHELL="%{l_bash}" \
   238     GREP="%{l_bash}" \
   239     ../configure \
   240         --with-bugurl="http://openpkg.org/" \
   241         --with-pkgversion="%{l_openpkg_release -F "OpenPKG-%%t"}" \
   242         --cache-file=./config.cache \
   243         --srcdir=`pwd`/.. \
   244         --prefix=%{l_prefix} \
   245         --exec-prefix=%{l_prefix} \
   246         --mandir=%{l_prefix}/man \
   247         --infodir=%{l_prefix}/info \
   248         --includedir=%{l_prefix}/include/gcc%{V_comp} \
   249         --with-gxx-include-dir=%{l_prefix}/include/g++%{V_comp} \
   250         --enable-languages="${l_enable_languages}" \
   251         --enable-threads="${l_enable_threads}" \
   252         --disable-maintainer-mode \
   253         --disable-shared \
   254         --disable-nls \
   255 %if "%{with_java}" == "yes"
   256         --with-system-zlib \
   257 %endif
   258 %if "%{with_multilib}" == "yes"
   259         --enable-multilib \
   260 %else
   261         --disable-multilib \
   262 %endif
   263 %if "%{with_cxx}" == "yes"
   264         --with-libiconv-prefix=%{l_prefix} \
   265 %endif
   266         --with-gmp=%{l_prefix} \
   267         --with-mpfr=%{l_prefix} \
   268         --with-mpc=%{l_prefix} \
   269         ${l_with_gnu_ld_as}
   271     #   determine build flags
   272     l_ccisgcc=no
   273     if [ ".`(%{l_cc} -v; %{l_cc} --version) </dev/null 2>&1 | grep -i 'gcc'`" != . ]; then
   274         l_ccisgcc=yes
   275     fi
   276     l_cflags=""
   277     l_cxxflags=""
   278     l_boot_cflags=""
   279     l_libcflags="-g"
   280     l_libcxxflags="-g"
   281     #   at least GNU as from GNU binutils supports -pipe always
   282     "$AS" --version </dev/null 2>/dev/null | grep "^GNU assembler" >/dev/null && {
   283         l_boot_cflags="$l_boot_cflags -pipe"
   284         l_libcxxflags="$l_libcxxflags -pipe"
   285     }
   286 %if "%{with_optimize}" == "yes"
   287     #   GCC authors are not keeping up with optimized portability expectations
   288     ( echo "As GCC advances its optimization logic becomes increasingly complex (and"
   289       echo "buggy?) Since at least GCC 4.5, problems have been reported using arguments"
   290       echo "-O, -mtune, or -march implicitly or explicitly during different bootstrap"
   291       echo "stages as well as stage comparison and even the final installation."
   292       echo ""
   293       echo "Pay attention when building on one computer and installing on another as"
   294       echo "problems may be platform specific. If in doubt, disable optimization."
   295     ) | %{l_rpmtool} msg -b -t warn
   296     if [ ".$l_ccisgcc" != .yes ]; then
   297         #   CPU native detection only works with GCC (see driver-i386.c)
   298         ( echo "Platform specific optimization is enabled, but detection of appropriate"
   299           echo "native architecture is only possible when bootstrapping GCC using a pre-"
   300           echo "installed GCC. The current build is using a different compiler, so such"
   301           echo "optimization is generically built while deferring native architecture"
   302           echo "detection to the final GCC binary."
   303           echo ""
   304           echo "To achieve native architecture detection while bootstrapping please"
   305           echo "install GCC first and then build GCC a second time."
   306         ) | %{l_rpmtool} msg -b -t notice
   307     fi
   308     #   tuning without specifying '-march' is portable and in theory
   309     #   allows the resulting GCC binaries to execute on other hosts!
   310     case "%{l_platform -t}" in
   311         *sun4[uv]-*                  ) l_boot_cflags="$l_boot_cflags -mtune=v9" ;;
   312         *sun*-*                      ) l_boot_cflags="$l_boot_cflags -mtune=v8" ;;
   313         *i?86-* | *amd64-* | *ia64-* ) l_boot_cflags="$l_boot_cflags -mtune=native" ;;
   314         *                            ) l_boot_cflags="$l_boot_cflags -mtune=generic" ;;
   315     esac
   316     l_cflags="$l_cflags -O"
   317     l_boot_cflags="$l_boot_cflags -O3 -fomit-frame-pointer"
   318     l_libcxxflags="$l_libcxxflags -O3 -fno-implicit-templates"
   319 %else
   320     #   don't optimize at all to avoid problems
   321     l_boot_cflags="$l_boot_cflags -O0"
   322     l_libcxxflags="$l_libcxxflags -O0"
   323 %endif
   324 %if "%{with_profile}" == "yes"
   325     #   generate profile feedback
   326     maketarget="profiledbootstrap"
   327     loc_makeflags="%{l_mflags}"
   329     #   warn about exceptional build duration for profile feedback
   330     ( echo "Building profile feedback on some hosts can take many days to complete!"
   331       echo "Now continuing to build a profiled bootstrap with parallel make logic"
   332       echo "disabled according to profiling requirements..."
   333     ) | %{l_rpmtool} msg -b -t warn
   335     #   warn about profiled bootstrap requirement of 64-bit arithmetic
   336     if [ ".$l_ccisgcc" != .yes ]; then
   337         ( echo "A preinstalled GCC was not detected although one is recommended for"
   338           echo "building a profiled bootstrap. Buildtime or runtime errors can occur if"
   339           echo "the compiler used to build profile feedback doesn't support 64-bit math."
   340           echo ""
   341           echo "If in doubt, stop now and start the build again with profiling disabled."
   342         ) | %{l_rpmtool} msg -b -t warn
   343     fi
   344 %else
   345     #   build in three stages
   346     maketarget="bootstrap"
   347     loc_makeflags="%{l_mflags -O}"
   348 %endif
   349     case "%{l_platform -t}" in
   350         *64-* ) l_cflags="$l_cflags -fPIC"; l_cxxflags="$l_cxxflags -fPIC" ;;
   351     esac
   352 %if "%{with_cxx}" == "yes"
   353     l_cflags="$l_cflags %{l_cppflags}"
   354     l_cxxflags="$l_cxxflags %{l_cppflags}"
   355     l_libcflags="$l_libcflags %{l_cppflags}"
   356     l_libcxxflags="$l_libcxxflags %{l_cppflags}"
   357 %endif
   359     #   build the package
   360     MAKE="%{l_make} ${loc_makeflags}" \
   361     %{l_make} ${loc_makeflags} \
   362         GREP="grep" \
   363         MAKE="%{l_make} ${loc_makeflags}" \
   364         BOOT_CFLAGS="${l_boot_cflags}" \
   365         CFLAGS="${l_cflags}" \
   366         CXXFLAGS="${l_cxxflags}" \
   367 %if "%{with_cxx}" == "yes"
   368         CPPFLAGS="%{l_cppflags}" \
   369         LDFLAGS="%{l_ldflags}" \
   370         BOOT_LDFLAGS="%{l_ldflags}" \
   371 %endif
   372         LIBCFLAGS="${l_libcflags}" \
   373         LIBCXXFLAGS="${l_libcxxflags}" \
   374         $maketarget
   376 %install
   377     rm -rf $RPM_BUILD_ROOT
   379     #   fetch GNU platform triple
   380     triple=`./config.guess`
   382     #   perform standard installation procedure
   383     ( cd objbld
   384       %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
   385     ) || exit $?
   387     #   cleanup installation tree
   388     mv $RPM_BUILD_ROOT%{l_prefix}/lib/{lib*.a,*.spec} \
   389        $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/ \
   390        >/dev/null 2>&1 || true
   391     mv $RPM_BUILD_ROOT%{l_prefix}/lib64/{lib*.a,*.spec} \
   392        $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/ \
   393        >/dev/null 2>&1 || true
   394     dirs=""
   395     for multilib in `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc --print-multi-lib`; do
   396         subdir=`echo "$multilib" | sed -e 's/;.*$//'`
   397         [ ".$subdir" = .. ] && continue
   398         mv $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir/lib*.a \
   399            $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/$subdir/ \
   400            >/dev/null 2>&1 || true
   401         mv $RPM_BUILD_ROOT%{l_prefix}/lib64/$subdir/lib*.a \
   402            $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/$subdir/ \
   403            >/dev/null 2>&1 || true
   404         dirs="$dirs $subdir"
   405     done
   406     for subdir in $dirs; do
   407         rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir >/dev/null 2>&1 || true
   408     done
   409     mv $RPM_BUILD_ROOT%{l_prefix}/${triple}/include/* \
   410        $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/include/ \
   411            >/dev/null 2>&1 || true
   413     #   correct hardcoded paths
   414     %{l_shtool} subst \
   415         -e "s;\(dependency_libs\) *=.*;\1='-L%{l_prefix}/lib\ -L%{l_prefix}/lib/gcc%{V_comp}/${triple}/%{V_full}\ -liberty';" \
   416        $RPM_BUILD_ROOT%{l_prefix}/libexec/gcc%{V_comp}/${triple}/[0-9]*/liblto_plugin.la
   418     #   strip installation tree
   419     rm -rf $RPM_BUILD_ROOT%{l_prefix}/${triple}
   420     rm -f  $RPM_BUILD_ROOT%{l_prefix}/info/dir
   421     rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man7   >/dev/null 2>&1 || true
   422     rm -f  $RPM_BUILD_ROOT%{l_prefix}/lib/*.la   >/dev/null 2>&1 || true
   423     rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib64      >/dev/null 2>&1 || true
   424     rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/*-gcc* >/dev/null 2>&1 || true
   425     rmdir  $RPM_BUILD_ROOT%{l_prefix}/include/gcc* >/dev/null 2>&1 || true
   426 %if "%{with_cxx}" == "yes"
   427     rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/*-c++  >/dev/null 2>&1 || true
   428     rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/*-g++  >/dev/null 2>&1 || true
   429 %endif
   430 %if "%{with_java}" == "yes"
   431     rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/*-gcj  >/dev/null 2>&1 || true
   432 %endif
   433     strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
   434     for prog in cc1 cc1plus collect2 cpp; do
   435         strip $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/${prog} \
   436             >/dev/null 2>&1 || true
   437     done
   439     #   bump up installation tree
   440     ln $RPM_BUILD_ROOT%{l_prefix}/bin/gcc \
   441        $RPM_BUILD_ROOT%{l_prefix}/bin/cc
   442     ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/gcc.1 \
   443        $RPM_BUILD_ROOT%{l_prefix}/man/man1/cc.1
   444 %if "%{with_cxx}" == "yes"
   445     ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/g++.1 \
   446        $RPM_BUILD_ROOT%{l_prefix}/man/man1/c++.1
   447 %endif
   449     #   determine installation file list
   450     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
   452 %files -f files
   454 %clean
   455     rm -rf $RPM_BUILD_ROOT

mercurial