aboutsummaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
Diffstat (limited to 'devel')
-rw-r--r--devel/scons/Makefile56
-rwxr-xr-xdevel/scons/files/pywrap.sh15
-rw-r--r--devel/scons/patches/001-platform_env.patch11
-rw-r--r--devel/scons/scons.mk23
4 files changed, 105 insertions, 0 deletions
diff --git a/devel/scons/Makefile b/devel/scons/Makefile
new file mode 100644
index 000000000..fa18487ca
--- /dev/null
+++ b/devel/scons/Makefile
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2011-2015 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:=3.1.1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/scons \
+ https://fossies.org/linux/misc/
+PKG_HASH:=4cea417fdd7499a36f407923d03b4b7000b0f9e8fd7b31b316b9ce7eba9143a5
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/scons
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=scons
+ HIDDEN:=1
+endef
+
+define Package/scons/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.
+endef
+
+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 BuildPackage,scons))
+$(eval $(call HostBuild))
diff --git a/devel/scons/files/pywrap.sh b/devel/scons/files/pywrap.sh
new file mode 100755
index 000000000..bb990290b
--- /dev/null
+++ b/devel/scons/files/pywrap.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+case "${0##*/}" in
+ pywrap.sh) arg1="";;
+ *) arg1="$0.py" ;;
+esac
+
+for bin in python python3; do
+ case "$($bin -V 2>&1)" in
+ "Python 3"*) exec $bin $arg1 "$@" ;;
+ esac
+done
+
+echo "Unable to find a Python 3.x interpreter for executing ${arg1:+$arg1 }$* !" >&2
+exit 1
diff --git a/devel/scons/patches/001-platform_env.patch b/devel/scons/patches/001-platform_env.patch
new file mode 100644
index 000000000..2be31470c
--- /dev/null
+++ b/devel/scons/patches/001-platform_env.patch
@@ -0,0 +1,11 @@
+--- a/engine/SCons/Platform/__init__.py
++++ b/engine/SCons/Platform/__init__.py
+@@ -65,6 +65,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':
diff --git a/devel/scons/scons.mk b/devel/scons/scons.mk
new file mode 100644
index 000000000..2b7671054
--- /dev/null
+++ b/devel/scons/scons.mk
@@ -0,0 +1,23 @@
+export PLATFORM=posix
+
+SCONS_VARS = \
+ CC="$(TARGET_CC_NOCACHE)" \
+ CXX="$(TARGET_CXX_NOCACHE)" \
+ CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
+ CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)" \
+ CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
+ DESTDIR="$(PKG_INSTALL_DIR)"
+
+define Build/Configure/Default
+ (cd $(PKG_BUILD_DIR); \
+ $(SCONS_VARS) \
+ scons \
+ prefix=/usr \
+ $(SCONS_OPTIONS) \
+ install \
+ )
+endef
+
+define Build/Compile
+endef