mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 14:38:51 +02:00
Add recipe for current gcc 2 version
This commit is contained in:
154
sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe
Normal file
154
sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe
Normal file
@@ -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/
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user