tools: simplify PYTHON_PATH computation (and fixes for NetBSD)
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Dec 2009 10:58:52 +0000 (10:58 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Dec 2009 10:58:52 +0000 (10:58 +0000)
Doesn't work when build-time python path differs from install-time. Do
we care about this given tools should be packaged/built for the
specific run-time distro?

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
tools/Rules.mk
tools/python/get-path [deleted file]
tools/python/install-wrap

index ae7bf0e3164f63d04187ca15959665a146bec893..53d8aa86ce19479d0ef572b58f1eb861ef7ae9d9 100644 (file)
@@ -49,8 +49,8 @@ check-$(CONFIG_X86) = $(call cc-ver-check,CC,0x030400,\
                         "Xen requires at least gcc-3.4")
 $(eval $(check-y))
 
-DEFAULT_PYTHON_PATH := $(shell $(XEN_ROOT)/tools/python/get-path)
-PYTHON_PATH ?= $(DEFAULT_PYTHON_PATH)
+_PYTHON_PATH := $(shell which $(PYTHON))
+PYTHON_PATH ?= $(_PYTHON_PATH)
 INSTALL_PYTHON_PROG = \
        $(XEN_ROOT)/tools/python/install-wrap "$(PYTHON_PATH)" $(INSTALL_PROG)
 
diff --git a/tools/python/get-path b/tools/python/get-path
deleted file mode 100755 (executable)
index ae67279..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /usr/bin/env bash
-set -e
-
-check () {
-       set +e
-       p=`type -p python$v`
-       r=$?
-       set -e
-       if [ $r = 0 ]; then
-               echo >&2 "${0##*/}: will use #!$p for python programs"
-               printf "%s\n" "$p"
-               exit 0
-       fi
-}
-
-v="$(python -V 2>&1)"
-v="${v#* }"
-check
-v="${v%.*}"
-check
-echo >&2 'python version not determined, will use env to find python at runtime'
-printf "/usr/bin/env python\n"
index 29db25d1a7d007c3bb1330f7444c05599864b888..00e2014016f9cdd55c7f6ac32b068e6fb84f9a0e 100755 (executable)
@@ -1,44 +1,60 @@
-#! /usr/bin/env bash
+#!/bin/sh
 # usage:
 #  .../install-wrap $(PYTHON_PATH) install <options-to-install> <src>... <dest>
 # where
 #  PYTHON_PATH is what to put after #! and may be `/usr/bin/env python'
 #
-# Used via $(INSTALL_PYTHON_PROG) in Rules.mk; PYTHON_PATH comes from
-# .../get-path alongside this script
+# Used via $(INSTALL_PYTHON_PROG) in Rules.mk; PYTHON_PATH comes from $(PYTHON)
 
 set -e
-if [ $# -lt 2 ]; then echo >&2 "${0##*/}: too few arguments"; exit 1; fi
-pythonpath="$1"; shift
+if test $# -lt 2; then
+       echo >&2 "${0##*/}: too few arguments"
+       exit 1
+fi
 
-install=("$1"); shift
-srcs=()
+pythonpath="$1"
+shift
+
+install="$1"
+shift
+srcs=""
 
 while [ $# != 0 ]; do
        case "$1" in
-       -|--)   install=("${install[@]}" "$1"); shift; break ;;
-       -*)     install=("${install[@]}" "$1"); shift ;;
-       *)      break ;;
+       -|--)   install=`echo "${install} $1"`
+               shift
+               break
+               ;;
+       -*)     install=`echo "${install} $1"`
+               shift
+               ;;
+       *)      break
+               ;;
        esac
 done
-while [ $# -gt 1 ]; do
-       srcs=("${srcs[@]}" "$1"); shift
+
+while test $# -gt 1; do
+       srcs=`echo "${srcs} $1"`
+       shift
 done
-dest="$1"; shift
+
+dest="$1"
+shift
 
 destf="$dest"
-for srcf in "${srcs[@]}"; do
+for srcf in ${srcs}; do
        if test -d "$dest"; then
-               destf="$dest/${srcf%%*/}";
+               destf="$dest/${srcf%%*/}"
        fi
        org="$(sed -n '2q; /^#! *\/usr\/bin\/env python *$/p' $srcf)"
-       if [ "x$org" = x ]; then
-               "${install[@]}" "$srcf" "$destf"
+       if test "x$org" = x; then
+               eval "${install} $srcf $destf"
                continue
        fi
        tmpf="$destf.tmp"
-       "${install[@]}" "$srcf" "$tmpf"
+       eval "${install} $srcf $tmpf"
        printf >"$tmpf" "#!%s\n" "$pythonpath"
        sed -e 1d "$srcf" >>"$tmpf"
        mv -f "$tmpf" "$destf"
 done
+exit 0