mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Also cut back on excessive use of *** to decorate configure error messages. If it's an error message, you are sure to see it without any decoration.
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Autoconf macros for configuring the build of Python extension modules
 | 
						|
#
 | 
						|
# $PostgreSQL: pgsql/config/python.m4,v 1.14 2006/10/16 17:24:54 petere 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
 | 
						|
 | 
						|
# threaded python is not supported on bsd's
 | 
						|
AC_MSG_CHECKING(whether Python is compiled with thread support)
 | 
						|
pythreads=`${PYTHON} -c "import sys; print int('thread' in sys.builtin_module_names)"`
 | 
						|
if test "$pythreads" = "1"; then
 | 
						|
  AC_MSG_RESULT(yes)
 | 
						|
  case $host_os in
 | 
						|
  openbsd*|freebsd*)
 | 
						|
    AC_MSG_ERROR([threaded Python not supported on this platform])
 | 
						|
    ;;
 | 
						|
  esac
 | 
						|
else
 | 
						|
  AC_MSG_RESULT(no)
 | 
						|
fi
 | 
						|
 | 
						|
])# PGAC_CHECK_PYTHON_EMBED_SETUP
 |