diff -r 69ba67bdbf93 tools/python/Makefile --- a/tools/python/Makefile Mon Apr 20 15:38:29 2009 +0100 +++ b/tools/python/Makefile Tue Apr 21 17:12:21 2009 +0200 @@ -13,9 +13,18 @@ POTFILE := $(PODIR)/xen-xm.pot I18NSRCFILES = $(shell find xen/xm/ -name '*.py') CATALOGS = $(patsubst %,xen/xm/messages/%.mo,$(LINGUAS)) NLSDIR = $(SHAREDIR)/locale +xenpath = "xen/util/path.py" -.PHONY: build buildpy -buildpy: +.PHONY: build buildpy genpath +genpath: + rm -f ${xenpath} + echo "SBINDIR=\"$(SBINDIR)\"" >> ${xenpath} + echo "BINDIR=\"$(BINDIR)\"" >> ${xenpath} + echo "LIBEXEC=\"$(LIBEXEC)\"" >> ${xenpath} + echo "LIBDIR=\"$(LIBDIR)\"" >> ${xenpath} + echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> ${xenpath} + +buildpy: genpath CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py build build: buildpy refresh-pot refresh-po $(CATALOGS) diff -r 69ba67bdbf93 tools/python/xen/util/auxbin.py --- a/tools/python/xen/util/auxbin.py Mon Apr 20 15:38:29 2009 +0100 +++ b/tools/python/xen/util/auxbin.py Tue Apr 21 17:12:21 2009 +0200 @@ -16,19 +16,10 @@ #============================================================================ -LIB_32 = "/usr/lib" -LIB_64 = "/usr/lib64" -LIB_BIN_SUFFIX = "xen/bin" - -## The architectures on which the LIB_64 directory is used. This -# deliberately excludes ia64 and ppc64, and Solaris. -LIB_64_ARCHS = [ 'x86_64', 's390x', 'sparc64'] - - import os import os.path import sys - +from xen.util.path import SBINDIR,BINDIR,LIBEXEC,LIBDIR,PRIVATE_BINDIR def execute(exe, args = None): exepath = pathTo(exe) @@ -41,26 +32,16 @@ def execute(exe, args = None): print exepath, ": ", exn sys.exit(1) - -def pathTo(exe): - return os.path.join(path(), exe) - +SEARCHDIRS = [ BINDIR, SBINDIR, LIBEXEC, PRIVATE_BINDIR ] +def pathTo(exebin): + for dir in SEARCHDIRS: + exe = os.path.join(dir, exebin) + if os.path.exists(exe): + return exe + return None def path(): - return os.path.join(libpath(), LIB_BIN_SUFFIX) - + return LIBEXEC def libpath(): - machine = os.uname()[4] - if sys.argv[0] != '-c': - prefix = os.path.dirname(os.path.dirname(sys.argv[0])) - path = os.path.join(prefix, os.path.basename(LIB_64)) - if machine in LIB_64_ARCHS and os.path.exists(path): - return path - path = os.path.join(prefix, os.path.basename(LIB_32)) - if os.path.exists(path): - return path - if machine in LIB_64_ARCHS and os.path.exists(LIB_64): - return LIB_64 - else: - return LIB_32 + return LIBDIR