diff options
Diffstat (limited to 'tools/scons')
-rw-r--r-- | tools/scons/Makefile | 34 | ||||
-rwxr-xr-x | tools/scons/files/pywrap.sh | 15 | ||||
-rw-r--r-- | tools/scons/patches/001-platform_env.patch | 11 |
3 files changed, 60 insertions, 0 deletions
diff --git a/tools/scons/Makefile b/tools/scons/Makefile new file mode 100644 index 000000000..83c1c584a --- /dev/null +++ b/tools/scons/Makefile @@ -0,0 +1,34 @@ +# +# Copyright (C) 2011 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=scons +PKG_VERSION:=2.1.0 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/scons +PKG_MD5SUM:=47daf989e303a045b76c11236df719df + +include $(INCLUDE_DIR)/host-build.mk + +define Host/Configure +endef + +define Host/Compile +endef + +define Host/Install + ./files/pywrap.sh $(HOST_BUILD_DIR)/setup.py install --prefix=$(STAGING_DIR_HOST) + rm -f $(STAGING_DIR_HOST)/bin/scons*.py + for bin in $(STAGING_DIR_HOST)/bin/scons*; do \ + mv "$$$$bin" "$$$$bin.py"; \ + cp ./files/pywrap.sh "$$$$bin"; \ + done +endef + +$(eval $(call HostBuild)) diff --git a/tools/scons/files/pywrap.sh b/tools/scons/files/pywrap.sh new file mode 100755 index 000000000..f62f590e0 --- /dev/null +++ b/tools/scons/files/pywrap.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +case "${0##*/}" in + pywrap.sh) arg1="";; + *) arg1="$0.py" ;; +esac + +for bin in python python2 python2.7 python2.6 python2.5 python2.4; do + case "$($bin -V 2>&1)" in + "Python 2"*) exec $bin $arg1 "$@" ;; + esac +done + +echo "Unable to find a Python 2.x interpreter for executing ${arg1:+$arg1 }$@ !" >&2 +exit 1 diff --git a/tools/scons/patches/001-platform_env.patch b/tools/scons/patches/001-platform_env.patch new file mode 100644 index 000000000..8aab9041c --- /dev/null +++ b/tools/scons/patches/001-platform_env.patch @@ -0,0 +1,11 @@ +--- a/engine/SCons/Platform/__init__.py ++++ b/engine/SCons/Platform/__init__.py +@@ -63,6 +63,8 @@ def platform_default(): + care about the machine architecture. + """ + osname = os.name ++ if 'PLATFORM' in os.environ: ++ return os.environ['PLATFORM'] + if osname == 'java': + osname = os._osType + if osname == 'posix': |