xref: /freebsd-src/contrib/ldns/ax_python_devel.m4 (revision 5afab0e5e56fe90a378fb57249600e7924e1cab2)
17b5038d7SDag-Erling Smørgrav# ===========================================================================
2*5afab0e5SDag-Erling Smørgrav#     https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
37b5038d7SDag-Erling Smørgrav# ===========================================================================
47b5038d7SDag-Erling Smørgrav#
57b5038d7SDag-Erling Smørgrav# SYNOPSIS
67b5038d7SDag-Erling Smørgrav#
77b5038d7SDag-Erling Smørgrav#   AX_PYTHON_DEVEL([version])
87b5038d7SDag-Erling Smørgrav#
97b5038d7SDag-Erling Smørgrav# DESCRIPTION
107b5038d7SDag-Erling Smørgrav#
117b5038d7SDag-Erling Smørgrav#   Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
127b5038d7SDag-Erling Smørgrav#   in your configure.ac.
137b5038d7SDag-Erling Smørgrav#
147b5038d7SDag-Erling Smørgrav#   This macro checks for Python and tries to get the include path to
15*5afab0e5SDag-Erling Smørgrav#   'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
16*5afab0e5SDag-Erling Smørgrav#   variables. It also exports $(PYTHON_EXTRA_LIBS) and
177b5038d7SDag-Erling Smørgrav#   $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
187b5038d7SDag-Erling Smørgrav#
197b5038d7SDag-Erling Smørgrav#   You can search for some particular version of Python by passing a
207b5038d7SDag-Erling Smørgrav#   parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please
217b5038d7SDag-Erling Smørgrav#   note that you *have* to pass also an operator along with the version to
227b5038d7SDag-Erling Smørgrav#   match, and pay special attention to the single quotes surrounding the
237b5038d7SDag-Erling Smørgrav#   version number. Don't use "PYTHON_VERSION" for this: that environment
247b5038d7SDag-Erling Smørgrav#   variable is declared as precious and thus reserved for the end-user.
257b5038d7SDag-Erling Smørgrav#
267b5038d7SDag-Erling Smørgrav#   This macro should work for all versions of Python >= 2.1.0. As an end
277b5038d7SDag-Erling Smørgrav#   user, you can disable the check for the python version by setting the
287b5038d7SDag-Erling Smørgrav#   PYTHON_NOVERSIONCHECK environment variable to something else than the
297b5038d7SDag-Erling Smørgrav#   empty string.
307b5038d7SDag-Erling Smørgrav#
317b5038d7SDag-Erling Smørgrav#   If you need to use this macro for an older Python version, please
327b5038d7SDag-Erling Smørgrav#   contact the authors. We're always open for feedback.
337b5038d7SDag-Erling Smørgrav#
347b5038d7SDag-Erling Smørgrav# LICENSE
357b5038d7SDag-Erling Smørgrav#
367b5038d7SDag-Erling Smørgrav#   Copyright (c) 2009 Sebastian Huber <sebastian-huber@web.de>
3717d15b25SDag-Erling Smørgrav#   Copyright (c) 2009 Alan W. Irwin
387b5038d7SDag-Erling Smørgrav#   Copyright (c) 2009 Rafael Laboissiere <rafael@laboissiere.net>
3917d15b25SDag-Erling Smørgrav#   Copyright (c) 2009 Andrew Collier
407b5038d7SDag-Erling Smørgrav#   Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org>
417b5038d7SDag-Erling Smørgrav#   Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org>
4217d15b25SDag-Erling Smørgrav#   Copyright (c) 2013 Daniel Mullner <muellner@math.stanford.edu>
437b5038d7SDag-Erling Smørgrav#
447b5038d7SDag-Erling Smørgrav#   This program is free software: you can redistribute it and/or modify it
457b5038d7SDag-Erling Smørgrav#   under the terms of the GNU General Public License as published by the
467b5038d7SDag-Erling Smørgrav#   Free Software Foundation, either version 3 of the License, or (at your
477b5038d7SDag-Erling Smørgrav#   option) any later version.
487b5038d7SDag-Erling Smørgrav#
497b5038d7SDag-Erling Smørgrav#   This program is distributed in the hope that it will be useful, but
507b5038d7SDag-Erling Smørgrav#   WITHOUT ANY WARRANTY; without even the implied warranty of
517b5038d7SDag-Erling Smørgrav#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
527b5038d7SDag-Erling Smørgrav#   Public License for more details.
537b5038d7SDag-Erling Smørgrav#
547b5038d7SDag-Erling Smørgrav#   You should have received a copy of the GNU General Public License along
55*5afab0e5SDag-Erling Smørgrav#   with this program. If not, see <https://www.gnu.org/licenses/>.
567b5038d7SDag-Erling Smørgrav#
577b5038d7SDag-Erling Smørgrav#   As a special exception, the respective Autoconf Macro's copyright owner
587b5038d7SDag-Erling Smørgrav#   gives unlimited permission to copy, distribute and modify the configure
597b5038d7SDag-Erling Smørgrav#   scripts that are the output of Autoconf when processing the Macro. You
607b5038d7SDag-Erling Smørgrav#   need not follow the terms of the GNU General Public License when using
617b5038d7SDag-Erling Smørgrav#   or distributing such scripts, even though portions of the text of the
627b5038d7SDag-Erling Smørgrav#   Macro appear in them. The GNU General Public License (GPL) does govern
637b5038d7SDag-Erling Smørgrav#   all other use of the material that constitutes the Autoconf Macro.
647b5038d7SDag-Erling Smørgrav#
657b5038d7SDag-Erling Smørgrav#   This special exception to the GPL applies to versions of the Autoconf
667b5038d7SDag-Erling Smørgrav#   Macro released by the Autoconf Archive. When you make and distribute a
677b5038d7SDag-Erling Smørgrav#   modified version of the Autoconf Macro, you may extend this special
687b5038d7SDag-Erling Smørgrav#   exception to the GPL to apply to your modified version as well.
697b5038d7SDag-Erling Smørgrav
70*5afab0e5SDag-Erling Smørgrav#serial 21
717b5038d7SDag-Erling Smørgrav
727b5038d7SDag-Erling SmørgravAU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
737b5038d7SDag-Erling SmørgravAC_DEFUN([AX_PYTHON_DEVEL],[
747b5038d7SDag-Erling Smørgrav	#
757b5038d7SDag-Erling Smørgrav	# Allow the use of a (user set) custom python version
767b5038d7SDag-Erling Smørgrav	#
777b5038d7SDag-Erling Smørgrav	AC_ARG_VAR([PYTHON_VERSION],[The installed Python
787b5038d7SDag-Erling Smørgrav		version to use, for example '2.3'. This string
797b5038d7SDag-Erling Smørgrav		will be appended to the Python interpreter
807b5038d7SDag-Erling Smørgrav		canonical name.])
817b5038d7SDag-Erling Smørgrav
827b5038d7SDag-Erling Smørgrav	AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
837b5038d7SDag-Erling Smørgrav	if test -z "$PYTHON"; then
847b5038d7SDag-Erling Smørgrav	   AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
857b5038d7SDag-Erling Smørgrav	   PYTHON_VERSION=""
867b5038d7SDag-Erling Smørgrav	fi
877b5038d7SDag-Erling Smørgrav
887b5038d7SDag-Erling Smørgrav	#
897b5038d7SDag-Erling Smørgrav	# Check for a version of Python >= 2.1.0
907b5038d7SDag-Erling Smørgrav	#
917b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
927b5038d7SDag-Erling Smørgrav	ac_supports_python_ver=`$PYTHON -c "import sys; \
937b5038d7SDag-Erling Smørgrav		ver = sys.version.split ()[[0]]; \
947b5038d7SDag-Erling Smørgrav		print (ver >= '2.1.0')"`
957b5038d7SDag-Erling Smørgrav	if test "$ac_supports_python_ver" != "True"; then
967b5038d7SDag-Erling Smørgrav		if test -z "$PYTHON_NOVERSIONCHECK"; then
977b5038d7SDag-Erling Smørgrav			AC_MSG_RESULT([no])
987b5038d7SDag-Erling Smørgrav			AC_MSG_FAILURE([
997b5038d7SDag-Erling SmørgravThis version of the AC@&t@_PYTHON_DEVEL macro
1007b5038d7SDag-Erling Smørgravdoesn't work properly with versions of Python before
1017b5038d7SDag-Erling Smørgrav2.1.0. You may need to re-run configure, setting the
102*5afab0e5SDag-Erling Smørgravvariables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
1037b5038d7SDag-Erling SmørgravPYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
1047b5038d7SDag-Erling SmørgravMoreover, to disable this check, set PYTHON_NOVERSIONCHECK
1057b5038d7SDag-Erling Smørgravto something else than an empty string.
1067b5038d7SDag-Erling Smørgrav])
1077b5038d7SDag-Erling Smørgrav		else
1087b5038d7SDag-Erling Smørgrav			AC_MSG_RESULT([skip at user request])
1097b5038d7SDag-Erling Smørgrav		fi
1107b5038d7SDag-Erling Smørgrav	else
1117b5038d7SDag-Erling Smørgrav		AC_MSG_RESULT([yes])
1127b5038d7SDag-Erling Smørgrav	fi
1137b5038d7SDag-Erling Smørgrav
1147b5038d7SDag-Erling Smørgrav	#
1157b5038d7SDag-Erling Smørgrav	# if the macro parameter ``version'' is set, honour it
1167b5038d7SDag-Erling Smørgrav	#
1177b5038d7SDag-Erling Smørgrav	if test -n "$1"; then
1187b5038d7SDag-Erling Smørgrav		AC_MSG_CHECKING([for a version of Python $1])
1197b5038d7SDag-Erling Smørgrav		ac_supports_python_ver=`$PYTHON -c "import sys; \
1207b5038d7SDag-Erling Smørgrav			ver = sys.version.split ()[[0]]; \
1217b5038d7SDag-Erling Smørgrav			print (ver $1)"`
1227b5038d7SDag-Erling Smørgrav		if test "$ac_supports_python_ver" = "True"; then
1237b5038d7SDag-Erling Smørgrav		   AC_MSG_RESULT([yes])
1247b5038d7SDag-Erling Smørgrav		else
1257b5038d7SDag-Erling Smørgrav			AC_MSG_RESULT([no])
1267b5038d7SDag-Erling Smørgrav			AC_MSG_ERROR([this package requires Python $1.
1277b5038d7SDag-Erling SmørgravIf you have it installed, but it isn't the default Python
1287b5038d7SDag-Erling Smørgravinterpreter in your system path, please pass the PYTHON_VERSION
1297b5038d7SDag-Erling Smørgravvariable to configure. See ``configure --help'' for reference.
1307b5038d7SDag-Erling Smørgrav])
1317b5038d7SDag-Erling Smørgrav			PYTHON_VERSION=""
1327b5038d7SDag-Erling Smørgrav		fi
1337b5038d7SDag-Erling Smørgrav	fi
1347b5038d7SDag-Erling Smørgrav
1357b5038d7SDag-Erling Smørgrav	#
1367b5038d7SDag-Erling Smørgrav	# Check if you have distutils, else fail
1377b5038d7SDag-Erling Smørgrav	#
1387b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([for the distutils Python package])
1397b5038d7SDag-Erling Smørgrav	ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
140*5afab0e5SDag-Erling Smørgrav	if test $? -eq 0; then
1417b5038d7SDag-Erling Smørgrav		AC_MSG_RESULT([yes])
1427b5038d7SDag-Erling Smørgrav	else
1437b5038d7SDag-Erling Smørgrav		AC_MSG_RESULT([no])
1447b5038d7SDag-Erling Smørgrav		AC_MSG_ERROR([cannot import Python module "distutils".
1457b5038d7SDag-Erling SmørgravPlease check your Python installation. The error was:
1467b5038d7SDag-Erling Smørgrav$ac_distutils_result])
1477b5038d7SDag-Erling Smørgrav		PYTHON_VERSION=""
1487b5038d7SDag-Erling Smørgrav	fi
1497b5038d7SDag-Erling Smørgrav
1507b5038d7SDag-Erling Smørgrav	#
1517b5038d7SDag-Erling Smørgrav	# Check for Python include path
1527b5038d7SDag-Erling Smørgrav	#
1537b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([for Python include path])
1547b5038d7SDag-Erling Smørgrav	if test -z "$PYTHON_CPPFLAGS"; then
1557b5038d7SDag-Erling Smørgrav		python_path=`$PYTHON -c "import distutils.sysconfig; \
1567b5038d7SDag-Erling Smørgrav			print (distutils.sysconfig.get_python_inc ());"`
15717d15b25SDag-Erling Smørgrav		plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
15817d15b25SDag-Erling Smørgrav			print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
1597b5038d7SDag-Erling Smørgrav		if test -n "${python_path}"; then
16017d15b25SDag-Erling Smørgrav			if test "${plat_python_path}" != "${python_path}"; then
16117d15b25SDag-Erling Smørgrav				python_path="-I$python_path -I$plat_python_path"
16217d15b25SDag-Erling Smørgrav			else
1637b5038d7SDag-Erling Smørgrav				python_path="-I$python_path"
1647b5038d7SDag-Erling Smørgrav			fi
16517d15b25SDag-Erling Smørgrav		fi
1667b5038d7SDag-Erling Smørgrav		PYTHON_CPPFLAGS=$python_path
1677b5038d7SDag-Erling Smørgrav	fi
1687b5038d7SDag-Erling Smørgrav	AC_MSG_RESULT([$PYTHON_CPPFLAGS])
1697b5038d7SDag-Erling Smørgrav	AC_SUBST([PYTHON_CPPFLAGS])
1707b5038d7SDag-Erling Smørgrav
1717b5038d7SDag-Erling Smørgrav	#
1727b5038d7SDag-Erling Smørgrav	# Check for Python library path
1737b5038d7SDag-Erling Smørgrav	#
1747b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([for Python library path])
175*5afab0e5SDag-Erling Smørgrav	if test -z "$PYTHON_LIBS"; then
1767b5038d7SDag-Erling Smørgrav		# (makes two attempts to ensure we've got a version number
1777b5038d7SDag-Erling Smørgrav		# from the interpreter)
1787b5038d7SDag-Erling Smørgrav		ac_python_version=`cat<<EOD | $PYTHON -
1797b5038d7SDag-Erling Smørgrav
1807b5038d7SDag-Erling Smørgrav# join all versioning strings, on some systems
1817b5038d7SDag-Erling Smørgrav# major/minor numbers could be in different list elements
1827b5038d7SDag-Erling Smørgravfrom distutils.sysconfig import *
18317d15b25SDag-Erling Smørgrave = get_config_var('VERSION')
18417d15b25SDag-Erling Smørgravif e is not None:
18517d15b25SDag-Erling Smørgrav	print(e)
18617d15b25SDag-Erling SmørgravEOD`
1877b5038d7SDag-Erling Smørgrav
1887b5038d7SDag-Erling Smørgrav		if test -z "$ac_python_version"; then
1897b5038d7SDag-Erling Smørgrav			if test -n "$PYTHON_VERSION"; then
1907b5038d7SDag-Erling Smørgrav				ac_python_version=$PYTHON_VERSION
1917b5038d7SDag-Erling Smørgrav			else
1927b5038d7SDag-Erling Smørgrav				ac_python_version=`$PYTHON -c "import sys; \
1937b5038d7SDag-Erling Smørgrav					print (sys.version[[:3]])"`
1947b5038d7SDag-Erling Smørgrav			fi
1957b5038d7SDag-Erling Smørgrav		fi
1967b5038d7SDag-Erling Smørgrav
1977b5038d7SDag-Erling Smørgrav		# Make the versioning information available to the compiler
1987b5038d7SDag-Erling Smørgrav		AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
1997b5038d7SDag-Erling Smørgrav                                   [If available, contains the Python version number currently in use.])
2007b5038d7SDag-Erling Smørgrav
2017b5038d7SDag-Erling Smørgrav		# First, the library directory:
2027b5038d7SDag-Erling Smørgrav		ac_python_libdir=`cat<<EOD | $PYTHON -
2037b5038d7SDag-Erling Smørgrav
2047b5038d7SDag-Erling Smørgrav# There should be only one
2057b5038d7SDag-Erling Smørgravimport distutils.sysconfig
20617d15b25SDag-Erling Smørgrave = distutils.sysconfig.get_config_var('LIBDIR')
20717d15b25SDag-Erling Smørgravif e is not None:
2087b5038d7SDag-Erling Smørgrav	print (e)
20917d15b25SDag-Erling SmørgravEOD`
2107b5038d7SDag-Erling Smørgrav
2117b5038d7SDag-Erling Smørgrav		# Now, for the library:
21217d15b25SDag-Erling Smørgrav		ac_python_library=`cat<<EOD | $PYTHON -
2137b5038d7SDag-Erling Smørgrav
21417d15b25SDag-Erling Smørgravimport distutils.sysconfig
21517d15b25SDag-Erling Smørgravc = distutils.sysconfig.get_config_vars()
21617d15b25SDag-Erling Smørgravif 'LDVERSION' in c:
21717d15b25SDag-Erling Smørgrav	print ('python'+c[['LDVERSION']])
21817d15b25SDag-Erling Smørgravelse:
21917d15b25SDag-Erling Smørgrav	print ('python'+c[['VERSION']])
22017d15b25SDag-Erling SmørgravEOD`
2217b5038d7SDag-Erling Smørgrav
2227b5038d7SDag-Erling Smørgrav		# This small piece shamelessly adapted from PostgreSQL python macro;
2237b5038d7SDag-Erling Smørgrav		# credits goes to momjian, I think. I'd like to put the right name
2247b5038d7SDag-Erling Smørgrav		# in the credits, if someone can point me in the right direction... ?
2257b5038d7SDag-Erling Smørgrav		#
22617d15b25SDag-Erling Smørgrav		if test -n "$ac_python_libdir" -a -n "$ac_python_library"
2277b5038d7SDag-Erling Smørgrav		then
2287b5038d7SDag-Erling Smørgrav			# use the official shared library
2297b5038d7SDag-Erling Smørgrav			ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
230*5afab0e5SDag-Erling Smørgrav			PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
2317b5038d7SDag-Erling Smørgrav		else
2327b5038d7SDag-Erling Smørgrav			# old way: use libpython from python_configdir
2337b5038d7SDag-Erling Smørgrav			ac_python_libdir=`$PYTHON -c \
2347b5038d7SDag-Erling Smørgrav			  "from distutils.sysconfig import get_python_lib as f; \
2357b5038d7SDag-Erling Smørgrav			  import os; \
2367b5038d7SDag-Erling Smørgrav			  print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
237*5afab0e5SDag-Erling Smørgrav			PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
2387b5038d7SDag-Erling Smørgrav		fi
2397b5038d7SDag-Erling Smørgrav
240*5afab0e5SDag-Erling Smørgrav		if test -z "PYTHON_LIBS"; then
2417b5038d7SDag-Erling Smørgrav			AC_MSG_ERROR([
2427b5038d7SDag-Erling Smørgrav  Cannot determine location of your Python DSO. Please check it was installed with
243*5afab0e5SDag-Erling Smørgrav  dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
2447b5038d7SDag-Erling Smørgrav			])
2457b5038d7SDag-Erling Smørgrav		fi
2467b5038d7SDag-Erling Smørgrav	fi
247*5afab0e5SDag-Erling Smørgrav	AC_MSG_RESULT([$PYTHON_LIBS])
248*5afab0e5SDag-Erling Smørgrav	AC_SUBST([PYTHON_LIBS])
2497b5038d7SDag-Erling Smørgrav
2507b5038d7SDag-Erling Smørgrav	#
2517b5038d7SDag-Erling Smørgrav	# Check for site packages
2527b5038d7SDag-Erling Smørgrav	#
2537b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([for Python site-packages path])
2547b5038d7SDag-Erling Smørgrav	if test -z "$PYTHON_SITE_PKG"; then
2557b5038d7SDag-Erling Smørgrav		PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
2567b5038d7SDag-Erling Smørgrav			print (distutils.sysconfig.get_python_lib(1,0));"`
2577b5038d7SDag-Erling Smørgrav	fi
2587b5038d7SDag-Erling Smørgrav	AC_MSG_RESULT([$PYTHON_SITE_PKG])
2597b5038d7SDag-Erling Smørgrav	AC_SUBST([PYTHON_SITE_PKG])
2607b5038d7SDag-Erling Smørgrav
2617b5038d7SDag-Erling Smørgrav	#
2627b5038d7SDag-Erling Smørgrav	# libraries which must be linked in when embedding
2637b5038d7SDag-Erling Smørgrav	#
2647b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING(python extra libraries)
2657b5038d7SDag-Erling Smørgrav	if test -z "$PYTHON_EXTRA_LIBS"; then
2667b5038d7SDag-Erling Smørgrav	   PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
2677b5038d7SDag-Erling Smørgrav                conf = distutils.sysconfig.get_config_var; \
268*5afab0e5SDag-Erling Smørgrav                print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
2697b5038d7SDag-Erling Smørgrav	fi
2707b5038d7SDag-Erling Smørgrav	AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
2717b5038d7SDag-Erling Smørgrav	AC_SUBST(PYTHON_EXTRA_LIBS)
2727b5038d7SDag-Erling Smørgrav
2737b5038d7SDag-Erling Smørgrav	#
2747b5038d7SDag-Erling Smørgrav	# linking flags needed when embedding
2757b5038d7SDag-Erling Smørgrav	#
2767b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING(python extra linking flags)
2777b5038d7SDag-Erling Smørgrav	if test -z "$PYTHON_EXTRA_LDFLAGS"; then
2787b5038d7SDag-Erling Smørgrav		PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
2797b5038d7SDag-Erling Smørgrav			conf = distutils.sysconfig.get_config_var; \
2807b5038d7SDag-Erling Smørgrav			print (conf('LINKFORSHARED'))"`
2817b5038d7SDag-Erling Smørgrav	fi
2827b5038d7SDag-Erling Smørgrav	AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
2837b5038d7SDag-Erling Smørgrav	AC_SUBST(PYTHON_EXTRA_LDFLAGS)
2847b5038d7SDag-Erling Smørgrav
2857b5038d7SDag-Erling Smørgrav	#
2867b5038d7SDag-Erling Smørgrav	# final check to see if everything compiles alright
2877b5038d7SDag-Erling Smørgrav	#
2887b5038d7SDag-Erling Smørgrav	AC_MSG_CHECKING([consistency of all components of python development environment])
2897b5038d7SDag-Erling Smørgrav	# save current global flags
2907b5038d7SDag-Erling Smørgrav	ac_save_LIBS="$LIBS"
291*5afab0e5SDag-Erling Smørgrav	ac_save_LDFLAGS="$LDFLAGS"
2927b5038d7SDag-Erling Smørgrav	ac_save_CPPFLAGS="$CPPFLAGS"
293*5afab0e5SDag-Erling Smørgrav	LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
294*5afab0e5SDag-Erling Smørgrav	LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
2957b5038d7SDag-Erling Smørgrav	CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
2967b5038d7SDag-Erling Smørgrav	AC_LANG_PUSH([C])
2977b5038d7SDag-Erling Smørgrav	AC_LINK_IFELSE([
2987b5038d7SDag-Erling Smørgrav		AC_LANG_PROGRAM([[#include <Python.h>]],
2997b5038d7SDag-Erling Smørgrav				[[Py_Initialize();]])
3007b5038d7SDag-Erling Smørgrav		],[pythonexists=yes],[pythonexists=no])
3017b5038d7SDag-Erling Smørgrav	AC_LANG_POP([C])
3027b5038d7SDag-Erling Smørgrav	# turn back to default flags
3037b5038d7SDag-Erling Smørgrav	CPPFLAGS="$ac_save_CPPFLAGS"
3047b5038d7SDag-Erling Smørgrav	LIBS="$ac_save_LIBS"
305*5afab0e5SDag-Erling Smørgrav	LDFLAGS="$ac_save_LDFLAGS"
3067b5038d7SDag-Erling Smørgrav
3077b5038d7SDag-Erling Smørgrav	AC_MSG_RESULT([$pythonexists])
3087b5038d7SDag-Erling Smørgrav
3097b5038d7SDag-Erling Smørgrav        if test ! "x$pythonexists" = "xyes"; then
3107b5038d7SDag-Erling Smørgrav	   AC_MSG_FAILURE([
3117b5038d7SDag-Erling Smørgrav  Could not link test program to Python. Maybe the main Python library has been
3127b5038d7SDag-Erling Smørgrav  installed in some non-standard library path. If so, pass it to configure,
313*5afab0e5SDag-Erling Smørgrav  via the LIBS environment variable.
314*5afab0e5SDag-Erling Smørgrav  Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
3157b5038d7SDag-Erling Smørgrav  ============================================================================
3167b5038d7SDag-Erling Smørgrav   ERROR!
3177b5038d7SDag-Erling Smørgrav   You probably have to install the development version of the Python package
3187b5038d7SDag-Erling Smørgrav   for your distribution.  The exact name of this package varies among them.
3197b5038d7SDag-Erling Smørgrav  ============================================================================
3207b5038d7SDag-Erling Smørgrav	   ])
3217b5038d7SDag-Erling Smørgrav	  PYTHON_VERSION=""
3227b5038d7SDag-Erling Smørgrav	fi
3237b5038d7SDag-Erling Smørgrav
3247b5038d7SDag-Erling Smørgrav	#
3257b5038d7SDag-Erling Smørgrav	# all done!
3267b5038d7SDag-Erling Smørgrav	#
3277b5038d7SDag-Erling Smørgrav])
328