Use the python install path from xcb-xproto.pc to locate the xcbgen package.
authorEamon Walsh <ewalsh@tycho.nsa.gov>
Thu, 24 Apr 2008 00:25:57 +0000 (20:25 -0400)
committerEamon Walsh <ewalsh@moss-charon.epoch.ncsc.mil>
Thu, 24 Apr 2008 00:25:57 +0000 (20:25 -0400)
configure.ac
src/Makefile.am
src/c_client.py

index 9b94392..5d21e81 100644 (file)
@@ -60,6 +60,12 @@ XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
 AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
 AC_SUBST(XCBPROTO_XCBINCLUDEDIR)
 
+# Find the xcbgen Python package
+AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR)
+XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
+AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR)
+AC_SUBST(XCBPROTO_XCBPYTHONDIR)
+
 AC_HEADER_STDC
 AC_SEARCH_LIBS(getaddrinfo, socket)
 AC_SEARCH_LIBS(connect, socket)
index 49ae77c..0399039 100644 (file)
@@ -268,10 +268,10 @@ $(EXTHEADERS) $(EXTSOURCES): c_client.py
 SUFFIXES = .xml
 
 .xml.h:
-       $(PYTHON) c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$<
+       $(PYTHON) c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $(XCBPROTO_XCBINCLUDEDIR)/$<
 
 .xml.c:
-       $(PYTHON) c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$<
+       $(PYTHON) c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $(XCBPROTO_XCBINCLUDEDIR)/$<
 
 $(EXTENSION_XML):
        $(LN_S) -f $(XCBPROTO_XCBINCLUDEDIR)/$@ $@
index 835ae5c..19c8015 100755 (executable)
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 from xml.etree.cElementTree import *
-from sys import argv
 from os.path import basename
+import getopt
+import sys
 import re
 
 # Jump to the bottom of this file for the main routine
@@ -982,6 +983,18 @@ output = {'open'    : c_open,
 
 # Boilerplate below this point
 
+# Check for the argument that specifies path to the xcbgen python package.
+try:
+    opts, args = getopt.getopt(sys.argv[1:], 'p:')
+except getopt.GetoptError, err:
+    print str(err)
+    print 'Usage: c_client.py [-p path] file.xml'
+    sys.exit(1)
+
+for (opt, arg) in opts:
+    if opt == '-p':
+        sys.path.append(arg)
+
 # Import the module class
 try:
     from xcbgen.state import Module
@@ -996,7 +1009,7 @@ except ImportError:
     raise
 
 # Parse the xml header
-module = Module(argv[1], output)
+module = Module(args[0], output)
 
 # Build type-registry and resolve type dependencies
 module.register()