mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
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:
1 parent
5f05fba8c1
commit
80b20a2fa0
3 files changed
+36
-42
No files matched your search
+2
-2
@@ -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)
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||