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 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}
-.PHONY: build buildpy
-buildpy:
+buildpy: genpath
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py build
build: buildpy refresh-pot refresh-po $(CATALOGS)
#============================================================================
-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)
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