scons: convert 2.2.0 recipe to an actual recipe

This commit is contained in:
Ingo Weinhold
2013-08-09 18:05:03 +02:00
parent e89df4bc25
commit 8b3e98d3a3
2 changed files with 80 additions and 36 deletions

View File

@@ -1,7 +1,14 @@
diff -Naur scons-2.2.0/engine/SCons/Platform/__init__.py scons-2.2.0-haiku/engine/SCons/Platform/__init__.py
--- scons-2.2.0/engine/SCons/Platform/__init__.py 2012-08-05 15:38:31.009961472 +0000
+++ scons-2.2.0-haiku/engine/SCons/Platform/__init__.py 2012-09-30 13:28:21.978583552 +0000
@@ -78,6 +78,8 @@
From 8f1968371d3426d08cba8dafa44eaaa0cb59b13f Mon Sep 17 00:00:00 2001
From: Ingo Weinhold <ingo_weinhold@gmx.de>
Date: Fri, 9 Aug 2013 17:46:35 +0200
Subject: Add support for the Haiku platform
diff --git a/engine/SCons/Platform/__init__.py b/engine/SCons/Platform/__init__.py
index 2cab3c8..373938d 100644
--- a/engine/SCons/Platform/__init__.py
+++ b/engine/SCons/Platform/__init__.py
@@ -78,6 +78,8 @@ def platform_default():
return 'aix'
elif sys.platform.find('darwin') != -1:
return 'darwin'
@@ -10,10 +17,12 @@ diff -Naur scons-2.2.0/engine/SCons/Platform/__init__.py scons-2.2.0-haiku/engin
else:
return 'posix'
elif os.name == 'os2':
diff -Naur scons-2.2.0/engine/SCons/Platform/haiku.py scons-2.2.0-haiku/engine/SCons/Platform/haiku.py
--- scons-2.2.0/engine/SCons/Platform/haiku.py 1970-01-01 00:00:00.000000000 +0000
+++ scons-2.2.0-haiku/engine/SCons/Platform/haiku.py 2012-09-30 13:30:07.109051904 +0000
@@ -0,0 +1,54 @@
diff --git a/engine/SCons/Platform/haiku.py b/engine/SCons/Platform/haiku.py
new file mode 100644
index 0000000..5c802dd
--- /dev/null
+++ b/engine/SCons/Platform/haiku.py
@@ -0,0 +1,69 @@
+"""SCons.Platform.haiku
+
+Platform-specific initialization for Haiku systems.
@@ -48,23 +57,41 @@ diff -Naur scons-2.2.0/engine/SCons/Platform/haiku.py scons-2.2.0-haiku/engine/S
+
+__revision__ = ""
+
+import posix
+import commands
+import os
+import posix
+
+def findDir( identifier ):
+ return commands.getoutput( 'finddir %s' % identifier )
+def findDir(identifier):
+ return commands.getoutput('finddir %s' % identifier)
+
+def generate(env):
+ posix.generate(env)
+
+ # path list
+ listPath = [ '.' ]
+ listPath.append( '%s/bin' % findDir( 'B_USER_CONFIG_DIRECTORY' ) )
+ listPath.append( findDir( 'B_COMMON_BIN_DIRECTORY' ) )
+ listPath.append( findDir( 'B_SYSTEM_BIN_DIRECTORY' ) )
+ listPath.append( findDir( 'B_BEOS_BIN_DIRECTORY' ) )
+ listPath.append( '%s/tools/gnupro/bin' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) )
+ env['ENV']['PATH'] = ':'.join( listPath )
+
+ # help the linker find the startfiles
+ env['ENV']['BELIBRARIES'] = ':%s/lib/x86' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' )
+
+ # determine, if building for the secondary architecture
+ secondaryArch = os.environ.get('HAIKU_SECONDARY_ARCH')
+ archSubDir = '/' + secondaryArch if secondaryArch else ''
+
+ # PATH
+ pathDescriptions = [
+ ('B_USER_NONPACKAGED_BIN_DIRECTORY', None),
+ ('B_USER_CONFIG_DIRECTORY', 'bin'),
+ ('B_COMMON_NONPACKAGED_BIN_DIRECTORY', None),
+ ('B_COMMON_BIN_DIRECTORY', None),
+ ('B_SYSTEM_BIN_DIRECTORY', None)
+ ]
+
+ paths = []
+ for pathConstant, subDir in pathDescriptions:
+ path = findDir(pathConstant)
+ if subDir:
+ path += '/' + subDir
+ paths.append(path)
+
+ if secondaryArch:
+ # prepend the secondary arch subdirectories
+ paths = [path + archSubDir for path in paths] + paths
+
+ env['ENV']['PATH'] = ':'.join(paths)
--
1.7.10.2

View File

@@ -1,15 +1,36 @@
DESCRIPTION="Open Source next-generation build tool."
SUMMARY="Open Source software construction tool"
DESCRIPTION="SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software."
HOMEPAGE="http://www.scons.org/"
LICENSE="MIT"
COPYRIGHT="2001-2012 The SCons Foundation"
SRC_URI="http://superb-dca3.dl.sourceforge.net/project/scons/scons/2.2.0/scons-2.2.0.tar.gz"
CHECKSUM_MD5="f737f474a02d08156c821bd2d4d4b632"
REVISION="2"
STATUS_HAIKU="stable"
DEPEND="dev-lang/python >= 2.5.4"
REVISION="1"
ARCHITECTURES="x86_gcc2 ?x86"
PATCHES="scons-2.2.0.patchset"
PROVIDES="
scons = $portVersion compat >= 2
cmd:scons = $portVersion compat >= 2
cmd:scons_2.2.0 = $portVersion compat >= 2
cmd:scons_time = $portVersion compat >= 2
cmd:scons_time_2.2.0 = $portVersion compat >= 2
cmd:sconsign = $portVersion compat >= 2
cmd:sconsign_2.2.0 = $portVersion compat >= 2
"
REQUIRES="
haiku >= $haikuVersion
cmd:python
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
cmd:python
"
BUILD()
{
cd scons-2.2.0
for f in "script/scons script/scons-time script/sconsign"; do
sed -i -e "s@#! /usr/bin/env python@#! /bin/env python@" $f
done
@@ -18,13 +39,9 @@ BUILD()
INSTALL()
{
if [ ! -z ${DESTDIR} ]; then
options="${options} --root=${DESTDIR}"
fi
options="${options} --prefix=`finddir B_COMMON_DIRECTORY`"
options="${options} --install-data=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`"
options="${options} --symlink-scons"
options="${options} --standard-lib"
cd scons-2.2.0
options="$options --prefix=$prefix"
options="$options --install-data=$documentationDir"
options="$options --symlink-scons"
options="$options --standard-lib"
python setup.py install $options
}