summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEamon Walsh <ewalsh@tycho.nsa.gov>2008-04-23 20:25:57 -0400
committerEamon Walsh <ewalsh@moss-charon.epoch.ncsc.mil>2008-04-23 20:25:57 -0400
commit40566c36d543edc2118cbb358e0303d9e8862892 (patch)
tree8b3933ca32f57ef38ff3c4e175f39406bcb115b9
parentb3832bcc46d85110fdb2b553df6249a831cfe0fa (diff)
Use the python install path from xcb-xproto.pc to locate the xcbgen package.
-rw-r--r--configure.ac6
-rw-r--r--src/Makefile.am4
-rwxr-xr-xsrc/c_client.py17
3 files changed, 23 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 9b94392..5d21e81 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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)
diff --git a/src/Makefile.am b/src/Makefile.am
index 49ae77c..0399039 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -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)/$@ $@
diff --git a/src/c_client.py b/src/c_client.py
index 835ae5c..19c8015 100755
--- a/src/c_client.py
+++ b/src/c_client.py
@@ -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()