freetype: fixed pkg-config and libtool files.

to use package links as described by Ingo.
* added devel packages requirements for libpng, zlib, bzip2
This commit is contained in:
Jerome Duval
2014-09-22 22:13:41 +00:00
parent dd83f38203
commit d0ef852764
19 changed files with 48 additions and 1273 deletions

View File

@@ -1,91 +0,0 @@
SUMMARY="Free general-purpose data compression software"
HOMEPAGE="http://tukaani.org/xz/"
SRC_URI="http://tukaani.org/xz/xz-5.0.1.tar.bz2"
CHECKSUM_SHA256="9b380f502d37085a60821484a3a13747454638927cc36033be64970512451ed8"
LICENSE="
GNU LGPL v2.1
GNU GPL v2
GNU GPL v3
"
COPYRIGHT="2005-2011 Lasse Collin"
REVISION="3"
ARCHITECTURES="!x86_gcc2 ?x86"
PROVIDES="
xz_utils = $portVersion compat >= 5
cmd:lzcat = 5.0.1 compat >= 5
cmd:lzcmp = 5.0.1 compat >= 5
cmd:lzdiff = 5.0.1 compat >= 5
cmd:lzegrep = 5.0.1 compat >= 5
cmd:lzfgrep = 5.0.1 compat >= 5
cmd:lzgrep = 5.0.1 compat >= 5
cmd:lzless = 5.0.1 compat >= 5
cmd:lzma = 5.0.1 compat >= 5
cmd:lzmadec = 5.0.1 compat >= 5
cmd:lzmainfo = 5.0.1 compat >= 5
cmd:lzmore = 5.0.1 compat >= 5
cmd:unlzma = 5.0.1 compat >= 5
cmd:unxz = 5.0.1 compat >= 5
cmd:xz = 5.0.1 compat >= 5
cmd:xzcat = 5.0.1 compat >= 5
cmd:xzcmp = 5.0.1 compat >= 5
cmd:xzdec = 5.0.1 compat >= 5
cmd:xzdiff = 5.0.1 compat >= 5
cmd:xzegrep = 5.0.1 compat >= 5
cmd:xzfgrep = 5.0.1 compat >= 5
cmd:xzgrep = 5.0.1 compat >= 5
cmd:xzless = 5.0.1 compat >= 5
cmd:xzmore = 5.0.1 compat >= 5
lib:liblzma = 5.0.1 compat >= 5
"
REQUIRES="
haiku >= $haikuVersion
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku_devel >= $haikuVersion
cmd:gcc
cmd:ld
cmd:libtoolize
cmd:make
"
SOURCE_DIR="xz-5.0.1"
BUILD()
{
touch po/t-cs.gmo
libtoolize --force --copy --install
./configure $configureDirArgs
# --localedir=$dataRootDir/locale
make
}
INSTALL()
{
make install
expanderRulesDir=$dataDir/expander/rules
mkdir -p $expanderRulesDir
cp "$portDir/sources/xz_utils-expander-rules" "$expanderRulesDir/xz_utils"
}
TEST()
{
make check
}
DESCRIPTION="XZ Utils is free general-purpose data compression software with high compression ratio. XZ Utils were written for POSIX-like systems, but also work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.
The core of the XZ Utils compression code is based on LZMA SDK, but it has been modified quite a lot to be suitable for XZ Utils. The primary compression algorithm is currently LZMA2, which is used inside the .xz container format. With typical files, XZ Utils create 30 % smaller output than gzip and 15 % smaller output than bzip2.
XZ Utils consist of several components:
* liblzma is a compression library with API similar to that of zlib.
* xz is a command line tool with syntax similar to that of gzip.
* xzdec is a decompression-only tool smaller than the full-featured xz tool.
* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to ease viewing, grepping, and comparing compressed files.
* Emulation of command line tools of LZMA Utils eases transition from LZMA Utils to XZ Utils.
While liblzma has a zlib-like API, liblzma doesn't include any file I/O functions. A separate I/O library is planned, which would abstract handling of .gz, .bz2, and .xz files with an easy to use API."

View File

@@ -1,120 +0,0 @@
SUMMARY="Free general-purpose data compression software"
HOMEPAGE="http://tukaani.org/xz/"
SRC_URI="http://tukaani.org/xz/xz-5.0.4.tar.bz2"
CHECKSUM_SHA256="5cd9b060d3a1ad396b3be52c9b9311046a1c369e6062aea752658c435629ce92"
LICENSE="
GNU LGPL v2.1
GNU GPL v2
GNU GPL v3
"
COPYRIGHT="2005-2012 Lasse Collin"
REVISION="3"
ARCHITECTURES="x86 x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
ADDITIONAL_FILES="xz_utils-expander-rules"
# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
xz_utils$secondaryArchSuffix = $portVersion compat >= 5
cmd:lzcat$commandSuffix = $portVersion compat >= 5
cmd:lzcmp$commandSuffix = $portVersion compat >= 5
cmd:lzdiff$commandSuffix = $portVersion compat >= 5
cmd:lzegrep$commandSuffix = $portVersion compat >= 5
cmd:lzfgrep$commandSuffix = $portVersion compat >= 5
cmd:lzgrep$commandSuffix = $portVersion compat >= 5
cmd:lzless$commandSuffix = $portVersion compat >= 5
cmd:lzma$commandSuffix = $portVersion compat >= 5
cmd:lzmadec$commandSuffix = $portVersion compat >= 5
cmd:lzmainfo$commandSuffix = $portVersion compat >= 5
cmd:lzmore$commandSuffix = $portVersion compat >= 5
cmd:unlzma$commandSuffix = $portVersion compat >= 5
cmd:unxz$commandSuffix = $portVersion compat >= 5
cmd:xz$commandSuffix = $portVersion compat >= 5
cmd:xzcat$commandSuffix = $portVersion compat >= 5
cmd:xzcmp$commandSuffix = $portVersion compat >= 5
cmd:xzdec$commandSuffix = $portVersion compat >= 5
cmd:xzdiff$commandSuffix = $portVersion compat >= 5
cmd:xzegrep$commandSuffix = $portVersion compat >= 5
cmd:xzfgrep$commandSuffix = $portVersion compat >= 5
cmd:xzgrep$commandSuffix = $portVersion compat >= 5
cmd:xzless$commandSuffix = $portVersion compat >= 5
cmd:xzmore$commandSuffix = $portVersion compat >= 5
lib:liblzma$secondaryArchSuffix = $portVersion compat >= 5
devel:liblzma$secondaryArchSuffix = $portVersion compat >= 5
"
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize
cmd:make
"
SOURCE_DIR="xz-$portVersion"
BUILD()
{
touch po/t-cs.gmo
runConfigure --omit-dirs binDir ./configure --bindir=$commandBinDir
make $jobArgs
}
INSTALL()
{
make install
expanderRulesDir=$dataDir/expander/rules
mkdir -p $expanderRulesDir
cp "$portDir/additional-files/xz_utils-expander-rules" \
"$expanderRulesDir/xz_utils"
fixPkgconfig
prepareInstalledDevelLibs liblzma
}
TEST()
{
make check
}
DESCRIPTION="
XZ Utils is free general-purpose data compression software with high \
compression ratio. XZ Utils were written for POSIX-like systems, but also work \
on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.
The core of the XZ Utils compression code is based on LZMA SDK, but it has \
been modified quite a lot to be suitable for XZ Utils. The primary compression \
algorithm is currently LZMA2, which is used inside the .xz container format. \
With typical files, XZ Utils create 30 % smaller output than gzip and 15 % \
smaller output than bzip2.
XZ Utils consist of several components:
* liblzma is a compression library with API similar to that of zlib.
* xz is a command line tool with syntax similar to that of gzip.
* xzdec is a decompression-only tool smaller than the full-featured xz tool.
* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to \
ease viewing, grepping, and comparing compressed files.
* Emulation of command line tools of LZMA Utils eases transition from LZMA \
Utils to XZ Utils.
While liblzma has a zlib-like API, liblzma doesn't include any file I/O \
functions. A separate I/O library is planned, which would abstract handling of \
.gz, .bz2, and .xz files with an easy to use API.
"

View File

@@ -5,7 +5,7 @@ CHECKSUM_SHA256="9879f02054cb22e99f605f6fdbf47f4c028af4cd4f351cf64186a7ee447f35d
COPYRIGHT="2012 The Apache Software Foundation."
LICENSE="Apache v2"
REVISION="1"
ARCHITECTURES="x86_gcc2 x86 ?x86_64"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PATCHES="apr-1.5.0.patch"

View File

@@ -1,4 +1,14 @@
SUMMARY="Apache Portable Runtime Utility Library"
DESCRIPTION="
The mission of the Apache Portable Runtime (APR) project is to create and \
maintain software libraries that provide a predictable and consistent \
interface to underlying platform-specific implementations. The primary goal is \
to provide an API to which software developers may code and be assured of \
predictable if not identical behaviour regardless of the platform on which \
their software is built, relieving them of the need to code special-case \
conditions to work around or take advantage of platform-specific deficiencies \
or features.
"
HOMEPAGE="http://apr.apache.org/"
SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz"
CHECKSUM_SHA256="76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743"
@@ -35,13 +45,13 @@ BUILD_PREREQUIRES="
cmd:make
"
SOURCE_DIR="apr-util-$portVersion"
PATCH()
{
echo 'AM_INIT_AUTOMAKE' >> xml/expat/configure.in
}
SOURCE_DIR="apr-util-$portVersion"
BUILD()
{
aprInstallDir=$portPackageLinksDir/lib~libapr_1
@@ -92,30 +102,6 @@ INSTALL()
$developDir
}
DESCRIPTION="
The mission of the Apache Portable Runtime (APR) project is to create and \
maintain software libraries that provide a predictable and consistent \
interface to underlying platform-specific implementations. The primary goal is \
to provide an API to which software developers may code and be assured of \
predictable if not identical behaviour regardless of the platform on which \
their software is built, relieving them of the need to code special-case \
conditions to work around or take advantage of platform-specific deficiencies \
or features.
To give a brief overview, the primary core subsystems of APR 1.x include the \
following:
- atomic operations
- dynamic Shared Object loading
- file I/O
- locks (mutexes, condition variables, etc)
- memory management (high performance allocators)
- memory-mapped files
- multicast Sockets
- network I/O
- shared memory
- thread and Process management
- various data structures (tables, hashes, priority queues, etc)
"
# ----- devel package -------------------------------------------------------
PROVIDES_devel="

View File

@@ -11,7 +11,7 @@ CHECKSUM_SHA256="fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b5
REVISION="4"
LICENSE="Boost v1.0"
COPYRIGHT="1998-2013 Beman Dawes, David Abrahams, Rene Rivera, et al."
ARCHITECTURES="x86 ?x86_64"
ARCHITECTURES="x86 x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else

View File

@@ -8,7 +8,7 @@ HOMEPAGE="http://www.gtk.org/gtk-doc/"
SRC_URI="http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/$portVersion/gtk-doc-$portVersion.tar.xz"
CHECKSUM_SHA256="3e6ecf134dbf92a74c24d79848fea3a48e59ab95408a38c6405905d95a293011"
REVISION="1"
ARCHITECTURES="x86_gcc2"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PROVIDES="
gtk_doc = $portVersion
cmd:gtkdoc_check
@@ -27,7 +27,7 @@ PROVIDES="
"
BUILD_REQUIRES="
docbook_xml_dtd == 4.3
docbook_xml_dtd >= 4.3
docbook_xsl_stylesheets
"

View File

@@ -22,7 +22,7 @@ HOMEPAGE="http://itstool.org/"
SRC_URI="http://files.itstool.org/itstool/itstool-$portVersion.tar.bz2"
CHECKSUM_SHA256="bf909fb59b11a646681a8534d5700fec99be83bb2c57badf8c1844512227033a"
REVISION="1"
ARCHITECTURES="x86_gcc2"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PROVIDES="
itstool = $portVersion
cmd:itstool
@@ -39,7 +39,7 @@ BUILD_REQUIRES="
BUILD_PREREQUIRES="
cmd:awk
cmd:make
cmd:python >= 2.6
cmd:python
"
BUILD()

View File

@@ -27,8 +27,6 @@ REQUIRES="
lib:libSDL_image
lib:libSDL_mixer
lib:libfribidi
lib:freetype
lib:gettext
lib:libpng
lib:libiconv
lib:libz
@@ -42,8 +40,6 @@ BUILD_REQUIRES="
devel:libSDL_image
devel:libSDL_mixer
devel:libfribidi
# devel:freetype
# devel:gettext
devel:libpng
devel:libz
devel:libiconv

View File

@@ -9,7 +9,7 @@ LICENSE="FreeType"
COPYRIGHT="1996-2013 David Turner, Robert Wilhelm, Werner Lemberg, et al."
SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-$portVersion.tar.bz2"
CHECKSUM_SHA256="c0848b29d52ef3ca27ad92e08351f023c5e24ce8cea7d8fe69fc96358e65f75e"
REVISION="1"
REVISION="2"
ARCHITECTURES="x86_gcc2 x86 x86_64 arm"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
@@ -24,13 +24,13 @@ REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
lib:libbz2$secondaryArchSuffix
lib:libz$secondaryArchSuffix >= 1
lib:libpng$secondaryArchSuffix
lib:libpng15$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
devel:libbz2$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libpng$secondaryArchSuffix
devel:libpng15$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
@@ -62,6 +62,12 @@ INSTALL()
# freetype with pkg-config.
sed -i -e "s,^includedir=.*,includedir=$prefix/$relativeIncludeDir/freetype2," \
$developLibDir/pkgconfig/freetype2.pc
local develPackageName="${portName}_devel-$portFullVersion"
local linksDir="/packages$packageLinksDir/${develPackageName}/devel~libpng15/develop/lib"
sed -i -e "s,^\(Libs.private.*\)-L.* \(-l.*\)$,\1-L$linksDir \2," \
$developLibDir/pkgconfig/freetype2.pc
sed -i -e "s,^\(dependency_libs.*\)-L.* \(-l.*\)$,\1-L$linksDir $linksDir/libpng15.la \2," \
$developLibDir/libfreetype.la
# devel package
packageEntries devel \
@@ -79,4 +85,7 @@ PROVIDES_devel="
"
REQUIRES_devel="
freetype${secondaryArchSuffix} == $portVersion base
devel:libbz2$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libpng15$secondaryArchSuffix
"

View File

@@ -14,16 +14,12 @@ SRC_URI="http://download.savannah.nongnu.org/releases/openexr/ilmbase-$portVersi
CHECKSUM_SHA256="ecf815b60695555c1fbc73679e84c7c9902f4e8faa6e8000d2f905b8b86cedc7"
REVISION="1"
ARCHITECTURES="x86 x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86 x86_gcc2"
if [ $effectiveTargetArchitecture == x86_gcc2 ]; then
PATCHES="ilmbase-$portVersion.patchset"
fi
PROVIDES="
ilmbase$secondaryArchSuffix = $portVersion
lib:libHalf$secondaryArchSuffix = 12.0.0 compat >= 12
@@ -35,7 +31,6 @@ PROVIDES="
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
lib:libstdc++$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
@@ -53,6 +48,9 @@ BUILD_PREREQUIRES="
BUILD()
{
./bootstrap
if [ $effectiveTargetArchitecture = x86_gcc2 ]; then
export CPPFLAGS="-Dios_base=ios -ftemplate-depth-24"
fi
runConfigure ./configure
make
}

View File

@@ -21,9 +21,11 @@ if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
SECONDARY_ARCHITECTURES="x86 x86_gcc2"
PATCHES="openexr-$portVersion.patchset"
PROVIDES="
openexr$secondaryArchSuffix = $portVersion
@@ -81,6 +83,9 @@ ${pathSecondaryArchSuffix}/pkgconfig/IlmBase.pc | sed s/IlmBase\.pc//g)
export PKG_CONFIG_PATH+=:$IlmBasePkgconfig
./bootstrap
if [ $effectiveTargetArchitecture = x86_gcc2 ]; then
export CPPFLAGS="-Dios_base=ios -ftemplate-depth-24"
fi
runConfigure ./configure
make $jobArgs
}

View File

@@ -1,86 +1,3 @@
From ef779aef81d2463f7ace973849b7308b51397b3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Sun, 13 Jul 2014 01:29:05 +0200
Subject: [PATCH 01/11] configure.ac: check for socket() in libnetwork for
Haiku
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index dbbb5a5..5ff995f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -198,7 +198,7 @@ AC_SEARCH_LIBS([clock_gettime], [rt])
AC_SEARCH_LIBS([syslog], [bsd socket inet],
[AC_DEFINE(HAVE_SYSLOG, 1, [Define if syslog() is available])])
-AC_SEARCH_LIBS([socket], [socket])
+AC_SEARCH_LIBS([socket], [network socket])
AC_SEARCH_LIBS([gethostbyname], [nsl])
if test x$host_is_linux = xyes; then
--
1.8.3.4
From 538cc30e408668dc81299137b3771c5e7999ab81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Sun, 13 Jul 2014 01:29:39 +0200
Subject: [PATCH 02/11] output: make sure AudioOutput::mixer is initialized
Avoids crashing when libao fails to initialize.
---
src/output/Init.cxx | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/output/Init.cxx b/src/output/Init.cxx
index eafcec4..79ef4f9 100644
--- a/src/output/Init.cxx
+++ b/src/output/Init.cxx
@@ -48,6 +48,7 @@
AudioOutput::AudioOutput(const AudioOutputPlugin &_plugin)
:plugin(_plugin),
+ mixer(nullptr),
enabled(true), really_enabled(false),
open(false),
pause(false),
--
1.8.3.4
From 4ed5e354d778792ed4a0dbc647655865e13de59a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Mon, 14 Jul 2014 23:10:02 +0200
Subject: [PATCH 03/11] unix: define WCOREDUMP() for platforms that don't
support it
Haiku does not dump core, it just starts the debugger.
---
src/unix/Daemon.cxx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/unix/Daemon.cxx b/src/unix/Daemon.cxx
index 490b2de..49ad394 100644
--- a/src/unix/Daemon.cxx
+++ b/src/unix/Daemon.cxx
@@ -37,6 +37,10 @@
#include <grp.h>
#endif
+#ifndef WCOREDUMP
+#define WCOREDUMP(v) 0
+#endif
+
static constexpr Domain daemon_domain("daemon");
#ifndef WIN32
--
1.8.3.4
From aabca27705ed851d637b5a16c913f056983ba3ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Mon, 14 Jul 2014 23:12:03 +0200

View File

@@ -23,10 +23,10 @@ SECONDARY_ARCHITECTURES="x86 x86_gcc2"
PATCHES="bison-${portVersion}.patchset"
PROVIDES="
bison$secondaryArchSuffix = $portVersion compat >= 2.6
cmd:bison$secondaryArchSuffix = $portVersion compat >= 2.6
bison$secondaryArchSuffix = $portVersion compat >= 2.5
cmd:bison$secondaryArchSuffix = $portVersion compat >= 2.5
cmd:yacc$secondaryArchSuffix
devel:liby$secondaryArchSuffix = $portVersion compat >= 2.6
devel:liby$secondaryArchSuffix = $portVersion compat >= 2.5
"
REQUIRES="

View File

@@ -1,159 +0,0 @@
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#b1ef802
git+git://github.com/haiku/BuildtoolsPM.git#b1ef802
"
REVISION="2"
ARCHITECTURES="x86_gcc2"
if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ]
then
ARCHITECTURES="$ARCHITECTURES x86"
fi
SECONDARY_ARCHITECTURES="x86_gcc2"
PROVIDES="
gcc = $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)
gccDate=$(echo $portVersion | sed 's,.*_,,')
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)
# 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
}
INSTALL()
{
cd $gccObjectsDir
make install
rm $gccInstallDir/lib/libiberty.a
# only needed for building gcc
base=$gccInstallDir
### HTML documentation ####################################
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 $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 $binDir
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/
}

View File

@@ -1,159 +0,0 @@
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/buildtools.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c
git+git://github.com/haiku/buildtools.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c
"
REVISION="1"
ARCHITECTURES="x86_gcc2"
if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ]
then
ARCHITECTURES="$ARCHITECTURES x86"
fi
SECONDARY_ARCHITECTURES="x86_gcc2"
PROVIDES="
gcc = $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)
gccDate=$(echo $portVersion | sed 's,.*_,,')
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)
# 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
}
INSTALL()
{
cd $gccObjectsDir
make install
rm $gccInstallDir/lib/libiberty.a
# only needed for building gcc
base=$gccInstallDir
### HTML documentation ####################################
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 $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 $binDir
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/
}

View File

@@ -1,156 +0,0 @@
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/buildtools.git#9bfca2f40f0857932e8bc66b6d1fdae94acf8d9c
git+git://github.com/haiku/buildtools.git#9bfca2f40f0857932e8bc66b6d1fdae94acf8d9c
"
REVISION="4"
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 $gccInstallDir/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$secondaryArchSubDir/libstdc++.r4.so $gccInstallDir/lib/
}

View File

@@ -1,130 +0,0 @@
SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}"
DESCRIPTION="Standard compiler for x86 platform."
HOMEPAGE="http://gcc.gnu.org"
LICENSE="
GNU GPL v2
GNU LGPL v2
"
COPYRIGHT="1988-2013 Free Software Foundation, Inc."
SRC_URI="
git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#7a87db2a172a406b79540188a23e52491ad3b741
git+git://github.com/haiku/BuildtoolsPM.git#7a87db2a172a406b79540188a23e52491ad3b741
"
REVISION="1"
ARCHITECTURES="x86"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:c++$secondaryArchSuffix = $portVersion compat >= 4
cmd:cc$secondaryArchSuffix = $portVersion compat >= 4
cmd:cpp$secondaryArchSuffix = $portVersion compat >= 4
cmd:g++$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc_4.7.3$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcov$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
cmd:autoconf
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:makeinfo
cmd:sed
cmd:strip
cmd:tar
"
SOURCE_DIR="gcc-$portVersion/gcc"
sourceDir=$(pwd)
relativeInstallDir="develop/tools$secondaryArchSubDir"
installDir="$prefix/$relativeInstallDir"
objectsDir=$(pwd)/../${portVersionedName}-obj
BUILD()
{
rm -rf $objectsDir
# 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 $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \
cp/parse.h c-gperf.h)
mkdir -p $objectsDir
cd $objectsDir
local additionalConfigureFlags
if [ -n "$secondaryArchSuffix" ]; then
additionalConfigureFlags="\
--with-hybrid-secondary=${effectiveTargetArchitecture}"
fi
CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" "$sourceDir/configure" \
--prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \
--docdir=$docDir \
--disable-nls --enable-shared \
--enable-languages=c,c++ --enable-lto --enable-frame-pointer \
--with-pkgversion=$(echo $portVersion | cut -c 7-) \
$additionalConfigureFlags
make $jobArgs
}
INSTALL()
{
cd $objectsDir
make install-strip
make install-html
### HTML documentation ####################################
echo "Organizing HTML documentation..."
cd $docDir
for dir in gmp libquadmath mpc mpfr; do
mv ${dir}.html $dir
ln -s $dir/index.html ${dir}.html
done
### Strip #################################################
echo "Strip debug info"
cd $installDir
strip --strip-debug bin/*
for f in cc1 cc1plus collect2 lto1; do
strip --strip-debug lib/gcc/$effectiveTargetMachineTriple/*/$f
done
strip --strip-debug lib/*.a
### Symlinks ##############################################
echo "Creating required symlinks"
# make all tools available via default paths
mkdir -p $binDir
for f in c++ cpp g++ gcc gcov; do
symlinkRelative -sfn $installDir/bin/$f $binDir
done
### Cleanup ###############################################
echo "Cleanup"
rm -rf $installDir/info
rm -rf $installDir/share
}

View File

@@ -1,157 +0,0 @@
SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}"
DESCRIPTION="
Standard compiler for x86 platform.
"
HOMEPAGE="http://gcc.gnu.org"
LICENSE="
GNU GPL v2
GNU LGPL v2
"
COPYRIGHT="1988-2013 Free Software Foundation, Inc."
SRC_URI="
git+file://$portBaseDir/../binutils/download/buildtools.git#fd576c8d8a83e3fe9a6443f9c0431bd11125314e
git+git://github.com/haiku/buildtools.git#fd576c8d8a83e3fe9a6443f9c0431bd11125314e
"
REVISION="5"
ARCHITECTURES="x86 x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:c++$secondaryArchSuffix = $portVersion compat >= 4
cmd:cc$secondaryArchSuffix = $portVersion compat >= 4
cmd:cpp$secondaryArchSuffix = $portVersion compat >= 4
cmd:g++$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc_4.7.3$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcov$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
cmd:as$secondaryArchSuffix
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
cmd:autoconf
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:makeinfo
cmd:sed
cmd:strip
cmd:tar
"
SOURCE_DIR="gcc-$portVersion/gcc"
sourceDir=$(pwd)
relativeInstallDir="develop/tools$secondaryArchSubDir"
installDir="$prefix/$relativeInstallDir"
objectsDir=$(pwd)/../${portVersionedName}-obj
BUILD()
{
rm -rf $objectsDir
# 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 $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \
cp/parse.h c-gperf.h)
mkdir -p $objectsDir
cd $objectsDir
local additionalConfigureFlags
if [ -n "$secondaryArchSuffix" ]; then
additionalConfigureFlags="\
--with-hybrid-secondary=${effectiveTargetArchitecture}"
fi
if [ $effectiveTargetArchitecture == x86_64 ]; then
# disable multilib support, as x86_64 by default tries to build the
# 32-bit libraries, too, which fails as no 32-bit libroot is available
additionalConfigureFlags+=" --disable-multilib"
fi
CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" "$sourceDir/configure" \
--build=$effectiveTargetMachineTriple \
--prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \
--docdir=$docDir \
--disable-nls --enable-shared --with-gnu-ld \
--enable-languages=c,c++ --enable-lto --enable-frame-pointer \
--with-pkgversion=$(echo $portVersion | cut -c 7-) \
$additionalConfigureFlags
make $jobArgs
}
INSTALL()
{
cd $objectsDir
make install-strip
make install-html
### HTML documentation ####################################
echo "Organizing HTML documentation..."
cd $docDir
for dir in gmp libquadmath mpc mpfr; do
mv ${dir}.html $dir
ln -s $dir/index.html ${dir}.html
done
### Strip #################################################
echo "Strip debug info"
cd $installDir
strip --strip-debug bin/*
for f in cc1 cc1plus collect2 lto1; do
strip --strip-debug lib/gcc/$effectiveTargetMachineTriple/*/$f
done
strip --strip-debug lib/*.a
### Disable ASLR ##########################################
echo "Add SYS:ENV attribute to disable ASLR"
cd $installDir
for f in bin/*; do
if [ -r "$f" ]; then
addattr SYS:ENV DISABLE_ASLR=1 $f
fi
done
for f in cc1 cc1plus collect2 lto1; do
addattr SYS:ENV DISABLE_ASLR=1 \
lib/gcc/$effectiveTargetMachineTriple/*/$f
done
### Symlinks ##############################################
echo "Creating required symlinks"
# create missing cc symlink
ln -sf gcc $installDir/bin/cc
# make all tools available via default paths
mkdir -p $binDir
for f in c++ cc cpp g++ gcc gcov; do
symlinkRelative -sfn $installDir/bin/$f $binDir
done
### Cleanup ###############################################
echo "Cleanup"
rm -rf $installDir/info
rm -rf $installDir/share
}

View File

@@ -1,164 +0,0 @@
SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}"
DESCRIPTION="
Standard compiler for x86 platform.
"
HOMEPAGE="http://gcc.gnu.org"
srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761"
SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="6d3b677cd8ef777bf6fb3186a15b5122e46345595a996370325c758b3d8a4ab6"
SRC_FILENAME="$portVersionedName.tar.gz"
REVISION="1"
LICENSE="
GNU GPL v2
GNU LGPL v2
"
COPYRIGHT="1988-2013 Free Software Foundation, Inc."
ARCHITECTURES="x86 x86_64 arm"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:c++$secondaryArchSuffix = $portVersion compat >= 4
cmd:cc$secondaryArchSuffix = $portVersion compat >= 4
cmd:cpp$secondaryArchSuffix = $portVersion compat >= 4
cmd:g++$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcc_4.8.2$secondaryArchSuffix = $portVersion compat >= 4
cmd:gcov$secondaryArchSuffix = $portVersion compat >= 4
lib:libstdc++$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
cmd:as$secondaryArchSuffix
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
cmd:autoconf
cmd:awk
cmd:find
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:makeinfo
cmd:sed
cmd:strip
cmd:tar
cmd:xargs
"
SOURCE_DIR="buildtools-$srcGitRev/gcc"
sourceDir=$(pwd)
relativeInstallDir="develop/tools$secondaryArchSubDir"
installDir="$prefix/$relativeInstallDir"
objectsDir=$(pwd)/../${portVersionedName}-obj
BUILD()
{
rm -rf $objectsDir
# 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 $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \
cp/parse.h c-gperf.h)
mkdir -p $objectsDir
cd $objectsDir
local additionalConfigureFlags
if [ -n "$secondaryArchSuffix" ]; then
additionalConfigureFlags="\
--with-hybrid-secondary=${effectiveTargetArchitecture}"
fi
if [ $effectiveTargetArchitecture == x86_64 ]; then
# disable multilib support, as x86_64 by default tries to build the
# 32-bit libraries, too, which fails as no 32-bit libroot is available
additionalConfigureFlags+=" --disable-multilib"
fi
CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" "$sourceDir/configure" \
--build=$effectiveTargetMachineTriple \
--prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \
--docdir=$docDir --enable-threads=posix \
--disable-nls --enable-shared --with-gnu-ld \
--enable-languages=c,c++ --enable-lto --enable-frame-pointer \
--with-pkgversion=$(echo $portVersion | cut -c 7-) \
$additionalConfigureFlags
make $jobArgs
}
INSTALL()
{
cd $objectsDir
make install-strip
make install-html
### HTML documentation ####################################
echo "Organizing HTML documentation..."
cd $docDir
for dir in gmp libquadmath mpc mpfr; do
mv ${dir}.html $dir
ln -s $dir/index.html ${dir}.html
done
### Strip #################################################
echo "Strip debug info"
cd $installDir
strip --strip-debug bin/*
for f in cc1 cc1plus collect2 lto1; do
strip --strip-debug lib/gcc/$effectiveTargetMachineTriple/*/$f
done
strip --strip-debug lib/*.a
### Disable ASLR ##########################################
echo "Add SYS:ENV attribute to disable ASLR"
cd $installDir
for f in bin/*; do
if [ -r "$f" ]; then
addattr SYS:ENV DISABLE_ASLR=1 $f
fi
done
for f in cc1 cc1plus collect2 lto1; do
addattr SYS:ENV DISABLE_ASLR=1 \
lib/gcc/$effectiveTargetMachineTriple/*/$f
done
### Symlinks ##############################################
echo "Creating required symlinks"
# create missing cc symlink
ln -sf gcc $installDir/bin/cc
# make all tools available via default paths
mkdir -p $binDir
for f in c++ cc cpp g++ gcc gcov; do
symlinkRelative -sfn $installDir/bin/$f $binDir
done
### Cleanup ###############################################
echo "Cleanup"
rm -rf $installDir/info
rm -rf $installDir/share
}