aboutsummaryrefslogtreecommitdiffstats
path: root/bindings/swig/python.m4
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/swig/python.m4')
-rw-r--r--bindings/swig/python.m4117
1 files changed, 117 insertions, 0 deletions
diff --git a/bindings/swig/python.m4 b/bindings/swig/python.m4
new file mode 100644
index 0000000..a047ea4
--- /dev/null
+++ b/bindings/swig/python.m4
@@ -0,0 +1,117 @@
+#----------------------------------------------------------------
+# Look for Python
+#----------------------------------------------------------------
+
+AC_DEFUN(SW_FIND_PYTHON,
+[
+
+PYINCLUDE=
+PYLIB=
+PYPACKAGE=
+PYTHONBUILD=
+
+# I don't think any of this commented stuff works anymore
+
+#PYLINK="-lModules -lPython -lObjects -lParser"
+
+#AC_ARG_WITH(py,[ --with-py=path Set location of Python],[
+# PYPACKAGE="$withval"], [PYPACKAGE=])
+#AC_ARG_WITH(pyincl,[ --with-pyincl=path Set location of Python include directory],[
+# PYINCLUDE="$withval"], [PYINCLUDE=])
+#AC_ARG_WITH(pylib,[ --with-pylib=path Set location of Python library directory],[
+# PYLIB="$withval"], [PYLIB=])
+
+#if test -z "$PYINCLUDE"; then
+# if test -n "$PYPACKAGE"; then
+# PYINCLUDE="$PYPACKAGE/include"
+# fi
+#fi
+
+#if test -z "$PYLIB"; then
+# if test -n "$PYPACKAGE"; then
+# PYLIB="$PYPACKAGE/lib"
+# fi
+#fi
+
+AC_ARG_WITH(python,[ --with-python=path Set location of Python executable],[ PYBIN="$withval"], [PYBIN=])
+
+# First figure out the name of the Python executable
+
+if test -z "$PYBIN"; then
+AC_PATH_PROGS(PYTHON, $prefix/bin/python python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 python1.4 python)
+else
+PYTHON="$PYBIN"
+fi
+
+if test -n "$PYTHON"; then
+ AC_MSG_CHECKING(for Python prefix)
+ PYPREFIX=`($PYTHON -c "import sys; print sys.prefix") 2>/dev/null`
+ AC_MSG_RESULT($PYPREFIX)
+ AC_MSG_CHECKING(for Python exec-prefix)
+ PYEPREFIX=`($PYTHON -c "import sys; print sys.exec_prefix") 2>/dev/null`
+ AC_MSG_RESULT($PYEPREFIX)
+
+
+ # Note: I could not think of a standard way to get the version string from different versions.
+ # This trick pulls it out of the file location for a standard library file.
+
+ AC_MSG_CHECKING(for Python version)
+
+ # Need to do this hack since autoconf replaces __file__ with the name of the configure file
+ filehack="file__"
+ PYVERSION=`($PYTHON -c "import string,operator; print operator.getitem(string.split(string.__$filehack,'/'),-2)")`
+ AC_MSG_RESULT($PYVERSION)
+
+ # Set the include directory
+
+ AC_MSG_CHECKING(for Python header files)
+ if test -r $PYPREFIX/include/$PYVERSION/Python.h; then
+ PYINCLUDE="-I$PYPREFIX/include/$PYVERSION -I$PYEPREFIX/lib/$PYVERSION/config"
+ fi
+ if test -z "$PYINCLUDE"; then
+ if test -r $PYPREFIX/include/Py/Python.h; then
+ PYINCLUDE="-I$PYPREFIX/include/Py -I$PYEPREFIX/lib/python/lib"
+ fi
+ fi
+ AC_MSG_RESULT($PYINCLUDE)
+
+ # Set the library directory blindly. This probably won't work with older versions
+ AC_MSG_CHECKING(for Python library)
+ dirs="$PYVERSION/config $PYVERSION/lib python/lib"
+ for i in $dirs; do
+ if test -d $PYEPREFIX/lib/$i; then
+ PYLIB="$PYEPREFIX/lib/$i"
+ PYTHONBUILD=python_make
+ break
+ fi
+ done
+ if test -z "$PYLIB"; then
+ AC_MSG_RESULT(Not found)
+ else
+ AC_MSG_RESULT($PYLIB)
+ fi
+
+ # Check for really old versions
+ if test -r $PYLIB/libPython.a; then
+ PYLINK="-lModules -lPython -lObjects -lParser"
+ else
+ PYLINK="-l$PYVERSION"
+ fi
+fi
+
+# Only cygwin (Windows) needs the library for dynamic linking
+case $ac_sys_system/$ac_sys_release in
+CYGWIN*) PYTHONDYNAMICLINKING="-L$PYLIB $PYLINK"
+ PYINCLUDE="-DUSE_DL_IMPORT $PYINCLUDE"
+ ;;
+*)PYTHONDYNAMICLINKING="";;
+esac
+
+
+AC_SUBST(PYINCLUDE)
+AC_SUBST(PYLIB)
+AC_SUBST(PYLINK)
+AC_SUBST(PYTHONBUILD)
+AC_SUBST(PYTHONDYNAMICLINKING)
+
+])