tools: simplify PYTHON_PATH computation (and fixes for NetBSD)

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>
This commit is contained in:
Keir Fraser committed 2009-12-09 10:58:52 +00:00
1 parent 5f05fba8c1
commit 80b20a2fa0
3 files changed
+36 -42

No files matched your search

+2 -2
View 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)
-22
View File
@@ -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"
+34 -18
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.