]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
python: get rid of hardcoded search pathes in python code.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 19 May 2009 01:16:37 +0000 (02:16 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 19 May 2009 01:16:37 +0000 (02:16 +0100)
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
.hgignore
tools/python/Makefile
tools/python/xen/util/auxbin.py

index 58dc83ac606201964a5632703bdaefeef5e2f98b..244158a5d39709c36fd19b1012fae3d623683955 100644 (file)
--- a/.hgignore
+++ b/.hgignore
 ^tools/misc/xenpm$
 ^tools/pygrub/build/.*$
 ^tools/python/build/.*$
+^tools/python/xen/util/path\.py$
 ^tools/security/secpol_tool$
 ^tools/security/xen/.*$
 ^tools/security/xensec_tool$
index 16ab59fd5147e8a028c3b695cc626fab22ebcffc..1eee50c4cf9123074602fc5cecfed2cc730d5c04 100644 (file)
@@ -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 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)
index e1830001bbdbe03d257e123f33e810585d7c73de..867f59ea938e14edcf0e0b487169bf28667ade53 100644 (file)
 #============================================================================
 
 
-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