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/work-2.17_130421/sources/binutils-2.17_130421#a57415355d72c2f0aa2afd1c374c9f7f9fc7f045 git+git://github.com/haiku/BuildtoolsPM.git#a57415355d72c2f0aa2afd1c374c9f7f9fc7f045 " REVISION="2" ARCHITECTURES="x86_gcc2 ?x86" PROVIDES=" gcc = $portVersion compat >= 2.95.3 cmd:cc cmd:c++ = $portVersion compat >= 2.95.3 cmd:c++filt = $portVersion compat >= 2.95.3 cmd:cpp = $portVersion compat >= 2.95.3 cmd:g++ = $portVersion compat >= 2.95.3 cmd:gcc = $portVersion compat >= 2.95.3 cmd:gcov = 1.5 compat >= 1.5 cmd:i586_pc_haiku_gcc = $portVersion compat >= 2.95.3 cmd:protoize = $portVersion compat >= 2.95.3 cmd:unprotoize = $portVersion compat >= 2.95.3 " REQUIRES=" haiku >= $haikuVersion " BUILD_REQUIRES=" binutils " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion cmd:autoconf gcc cmd:flex cmd:make cmd:sed cmd:tar cmd:makeinfo " SOURCE_DIR="$portVersionedName" SOURCE_EXPORT_SUBDIR="legacy/gcc" BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL gccDir=$(pwd)/legacy/gcc gccDate=$(echo $portVersion | sed 's,.*_,,') relativeGccInstallDir="develop/tools/gcc-2.95.3_${gccDate}" gccInstallDir="$prefix/$relativeGccInstallDir" gccObjectsDir=$gccDir/../gcc-obj gccDocDir=$docDir-2.95.3 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 $gccDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \ cp/parse.h c-gperf.h) # build gcc mkdir -p $gccObjectsDir cd $gccObjectsDir CFLAGS="-O2" CXXFLAGS="-O2" "$gccDir/configure" \ --prefix=$gccInstallDir \ --disable-nls --enable-shared=yes --enable-languages=c,c++ make bootstrap || true # The above will fail when compiling builtinbuf.cc, but we can ignore # that since it's trying to build libstdc++.so, which haiku provides # anyway. } INSTALL() { cd $gccObjectsDir make install rm $gccInstallDir/lib/libiberty.a # only needed for building gcc base=$gccInstallDir ### HTML documentation #################################### html_base=$gccDocDir 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 $base/bin ln -sfn g++ c++ ln -sfn gcc cc ln -sfn gcc i586-pc-haiku-gcc # make all tools available via default paths if this is the system # compiler if [ $targetArchitecture = 'x86_gcc2' ]; then echo "Symlinking binaries into default path" mkdir -p $prefix/bin cd $prefix/bin ln -sfn ../$relativeGccInstallDir/bin/* . fi ### Strip ################################################# echo "Strip debug info" cd $base strip --strip-debug bin/* strip --strip-debug i586-pc-haiku/bin/* strip --strip-debug lib/gcc-lib/i586-pc-haiku/2.95.3-${gccDate}/* \ &>/dev/null || true ### Cleanup ############################################### echo "Cleanup" if [ -d $base/man -o -d $base/info -o -d $base/share ]; then rm -rf $base/man rm -rf $base/info rm -rf $base/share fi rm -f $base/lib/gcc-lib/i586-pc-haiku/2.95.3-haiku-$gccDate/include/math.h ### C++ includes ########################################## echo "Install C++ includes & library" rm -rf $base/include/g++ ln -snf /boot/system/develop/headers/c++/2.95.3 $base/include/g++ ln -snf /boot/system/lib/libstdc++.r4.so $base/lib/ ln -snf /boot/system/lib/libstdc++.so $base/lib/ }