Add python-config.py.
authorHuang Peng <shawn.p.huang@gmail.com>
Sat, 9 Aug 2008 00:20:13 +0000 (08:20 +0800)
committerHuang Peng <shawn.p.huang@gmail.com>
Sat, 9 Aug 2008 00:20:13 +0000 (08:20 +0800)
Makefile.am
configure.ac
python-config.py [new file with mode: 0755]

index 8994fdb..376fb50 100644 (file)
@@ -30,6 +30,7 @@ ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = \
        autogen.sh \
        ibus-anthy.spec.in \
+       python-config.py \
        $(NULL)
 
 noinst_DIST = \
index 36cfcb8..1fc037c 100644 (file)
@@ -67,8 +67,12 @@ AC_SUBST(ENV)
 
 # check python
 AM_PATH_PYTHON([2.5])
-PYTHON_CONFIG=`type -p python$PYTHON_VERSION-config`
-if test "$PYTHON_CONFIG" != ""; then
+
+AC_PATH_PROG(PYTHON_CONFIG, python$PYTHON_VERSION-config)
+if test x"$PYTHON_CONFIG" == x""; then
+AC_PATH_PROG(PYTHON_CONFIG, python-config)
+fi
+if test x"$PYTHON_CONFIG" != x""; then
     PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
     PYTHON_LIBS=`$PYTHON_CONFIG --libs`
 else
diff --git a/python-config.py b/python-config.py
new file mode 100755 (executable)
index 0000000..e53fb2c
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/python2.5
+
+import sys
+import os
+import getopt
+from distutils import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', 
+              'ldflags', 'help']
+
+def exit_with_usage(code=1):
+    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0], 
+                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+opt = opts[0][0]
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+if opt == '--help':
+    exit_with_usage(0)
+
+elif opt == '--prefix':
+    print sysconfig.PREFIX
+
+elif opt == '--exec-prefix':
+    print sysconfig.EXEC_PREFIX
+
+elif opt in ('--includes', '--cflags'):
+    flags = ['-I' + sysconfig.get_python_inc(),
+             '-I' + sysconfig.get_python_inc(plat_specific=True)]
+    if opt == '--cflags':
+        flags.extend(getvar('CFLAGS').split())
+    print ' '.join(flags)
+
+elif opt in ('--libs', '--ldflags'):
+    libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
+    libs.append('-lpython'+pyver)
+    # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+    # shared library in prefix/lib/.
+    if opt == '--ldflags' and not getvar('Py_ENABLE_SHARED'):
+        libs.insert(0, '-L' + getvar('LIBPL'))
+    print ' '.join(libs)
+