summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-05-15 20:04:07 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-05-15 20:04:07 +0000
commit909d9c8ff78696eb94f8e54e32e8d1e55ec8177d (patch)
tree845aed7cb85128b08b69363b7a44469168ec3023
parenta7f8243bd567359a7d621a0f65cf065f5d44d774 (diff)
[tools] scons: wrap python invocations with helper script that attempts to find a non-3.x python
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31742 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--tools/scons/Makefile7
-rwxr-xr-xtools/scons/files/pywrap.sh15
2 files changed, 21 insertions, 1 deletions
diff --git a/tools/scons/Makefile b/tools/scons/Makefile
index aadeb289a2..83c1c584a5 100644
--- a/tools/scons/Makefile
+++ b/tools/scons/Makefile
@@ -23,7 +23,12 @@ define Host/Compile
endef
define Host/Install
- python $(HOST_BUILD_DIR)/setup.py install --prefix=$(STAGING_DIR_HOST)
+ ./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 0000000000..336ea21c19
--- /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 python2.7 python2.6 python2.5 python2.4 python2 python; 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