From 3d8703d1e12c84a9066cf34539fe5798c5514cc3 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 17 Aug 2013 09:39:24 +0200 Subject: [PATCH] Add recipe for current gcc 2 version --- sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe diff --git a/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe b/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe new file mode 100644 index 000000000..b9f78b7f0 --- /dev/null +++ b/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe @@ -0,0 +1,154 @@ +SUMMARY="C/C++ compiler" +DESCRIPTION="Standard compiler for x86_gcc2 platform, ABI-compatible with BeOS R5." +HOMEPAGE="http://gcc.gnu.org" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2000 Free Software Foundation, Inc." +SRC_URI=" + git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c + git+git://github.com/haiku/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c + " +REVISION="2" +ARCHITECTURES="x86_gcc2" +if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ] +then + ARCHITECTURES="$ARCHITECTURES x86" +fi +SECONDARY_ARCHITECTURES="x86_gcc2" + +PROVIDES=" + gcc$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:cc$secondaryArchSuffix + cmd:c++$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:c++filt$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:cpp$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:g++$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:gcc$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:gcov$secondaryArchSuffix = 1.5 compat >= 1.5 + cmd:i586_pc_haiku_gcc$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:protoize$secondaryArchSuffix = $portVersion compat >= 2.95.3 + cmd:unprotoize$secondaryArchSuffix = $portVersion compat >= 2.95.3 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + binutils$secondaryArchSuffix + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + gcc$secondaryArchSuffix + cmd:flex + cmd:make + cmd:sed + cmd:tar + cmd:makeinfo + " + +SOURCE_DIR="$portVersionedName/legacy/gcc" +BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL + +gccDir=$(pwd) +relativeGccInstallDir="develop/tools$secondaryArchSubDir" +gccInstallDir="$prefix/$relativeGccInstallDir" +gccObjectsDir=$gccDir/../gcc-obj + +BUILD() +{ + rm -rf $gccObjectsDir + + # Touch some files generated by bison, so that bison won't run to update + # them. Fixes issues with newer bison versions. + # And while at it, touch gperf target, too (as gperf may not be installed). + (cd gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \ + cp/parse.h c-gperf.h) + + mkdir -p $gccObjectsDir + cd $gccObjectsDir + + local additionalConfigureFlags + if [ -n "$secondaryArchSuffix" ]; then + additionalConfigureFlags="\ + --with-hybrid-secondary=${effectiveTargetArchitecture}" + fi + + CFLAGS="-O2" CXXFLAGS="-O2" "$gccDir/configure" \ + --prefix=$gccInstallDir \ + --disable-nls --enable-shared=yes --enable-languages=c,c++ \ + $additionalConfigureFlags + make bootstrap +} + +INSTALL() +{ + cd $gccObjectsDir + make install + + rm $gccInstallDir/lib/libiberty.a + # only needed for building gcc + + ### HTML documentation #################################### + + local html_base=$docDir + if [ ! -d "$html_base" ]; then + echo "Building HTML documentation..." + mkdir -p $html_base + cd $html_base + + makeinfo --html "$gccDir/gcc/cpp.texi" + makeinfo --html "$gccDir/gcc/gcc.texi" + makeinfo --force --html "$gccDir/libio/iostream.texi" \ + && true + # some errors + + ln -sf cpp/index.html $html_base/cpp.html + ln -sf gcc/index.html $html_base/gcc.html + ln -sf iostream/index.html $html_base/iostream.html + fi + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # convert to absolute links to relative ones + cd $gccInstallDir/bin + ln -sfn g++ c++ + ln -sfn gcc cc + ln -sfn gcc $effectiveTargetMachineTriple-gcc + + # make all tools available via default paths + echo "Symlinking binaries into default path" + mkdir -p $binDir + symlinkRelative -s $installDir/bin/* $binDir + + ### Strip ################################################# + + echo "Strip debug info" + + cd $gccInstallDir + strip --strip-debug bin/* + strip --strip-debug lib/gcc-lib/$effectiveTargetMachineTriple/2.95.3-*/* \ + &>/dev/null || true + + ### Cleanup ############################################### + + echo "Cleanup" + + cd $gccInstallDir + rm -rf info + rm -rf share + rm man/man1/cccp.1 + + ### C++ includes ########################################## + + echo "Install C++ includes & library" + + rm -rf $gccInstallDir/include/g++ + ln -snf /boot/system/develop/headers/c++/2.95.3 $gccInstallDir/include/g++ + + ln -snf /boot/system/lib/libstdc++.r4.so $gccInstallDir/lib/ +}