Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

python.m4

Blame
  • python.m4 3.15 KiB
    #
    # Autoconf macros for configuring the build of Python extension modules
    #
    # $PostgreSQL: pgsql/config/python.m4,v 1.11 2004/10/11 19:32:16 tgl Exp $
    #
    
    # PGAC_PATH_PYTHON
    # ----------------
    # Look for Python and set the output variable 'PYTHON'
    # to 'python' if found, empty otherwise.
    AC_DEFUN([PGAC_PATH_PYTHON],
    [AC_PATH_PROG(PYTHON, python)
    if test x"$PYTHON" = x""; then
      AC_MSG_ERROR([Python not found])
    fi
    ])
    
    
    # _PGAC_CHECK_PYTHON_DIRS
    # -----------------------
    # Determine the name of various directories of a given Python installation.
    AC_DEFUN([_PGAC_CHECK_PYTHON_DIRS],
    [AC_REQUIRE([PGAC_PATH_PYTHON])
    AC_MSG_CHECKING([for Python distutils module])
    if "${PYTHON}" 2>&- -c 'import distutils'
    then
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([distutils module not found])
    fi
    AC_MSG_CHECKING([Python configuration directory])
    python_version=`${PYTHON} -c "import sys; print sys.version[[:3]]"`
    python_configdir=`${PYTHON} -c "from distutils.sysconfig import get_python_lib as f; import os; print os.path.join(f(plat_specific=1,standard_lib=1),'config')"`
    python_includespec=`${PYTHON} -c "import distutils.sysconfig; print '-I'+distutils.sysconfig.get_python_inc()"`
    
    AC_SUBST(python_version)[]dnl
    AC_SUBST(python_configdir)[]dnl
    AC_SUBST(python_includespec)[]dnl
    # This should be enough of a message.
    AC_MSG_RESULT([$python_configdir])
    ])# _PGAC_CHECK_PYTHON_DIRS
    
    
    # PGAC_CHECK_PYTHON_EMBED_SETUP
    # -----------------------------
    #
    # Note: selecting libpython from python_configdir works in all Python
    # releases, but it generally finds a non-shared library, which means
    # that we are binding the python interpreter right into libplpython.so.
    # In Python 2.3 and up there should be a shared library available in
    # the main library location.
    AC_DEFUN([PGAC_CHECK_PYTHON_EMBED_SETUP],
    [AC_REQUIRE([_PGAC_CHECK_PYTHON_DIRS])
    AC_MSG_CHECKING([how to link an embedded Python application])
    
    python_libdir=`${PYTHON} -c "import distutils.sysconfig,string; print string.join(filter(None,distutils.sysconfig.get_config_vars('LIBDIR')))"`
    python_ldlibrary=`${PYTHON} -c "import distutils.sysconfig,string; print string.join(filter(None,distutils.sysconfig.get_config_vars('LDLIBRARY')))"`
    python_so=`${PYTHON} -c "import distutils.sysconfig,string; print string.join(filter(None,distutils.sysconfig.get_config_vars('SO')))"`
    ldlibrary=`echo "${python_ldlibrary}" | sed "s/${python_so}$//"`
    
    if test x"${python_libdir}" != x"" -a x"${python_ldlibrary}" != x"" -a x"${python_ldlibrary}" != x"${ldlibrary}"
    then
    	# New way: use the official shared library
    	ldlibrary=`echo "${ldlibrary}" | sed "s/^lib//"`
    	python_libspec="-L${python_libdir} -l${ldlibrary}"
    else
    	# Old way: use libpython from python_configdir
    	python_libdir="${python_configdir}"
    	python_libspec="-L${python_libdir} -lpython${python_version}"
    fi
    
    python_additional_libs=`${PYTHON} -c "import distutils.sysconfig,string; print string.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','LOCALMODLIBS','BASEMODLIBS')))"`
    
    AC_MSG_RESULT([${python_libspec} ${python_additional_libs}])
    
    AC_SUBST(python_libdir)[]dnl
    AC_SUBST(python_libspec)[]dnl
    AC_SUBST(python_additional_libs)[]dnl
    ])# PGAC_CHECK_PYTHON_EMBED_SETUP