diff options
Diffstat (limited to 'bindings/swig/python.m4')
-rw-r--r-- | bindings/swig/python.m4 | 117 |
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) + +]) |