# -*- Autoconf -*- ## --------------------------- ## ## Autoconf macros for Python. ## ## --------------------------- ## # CIT_PYTHON_INCDIR # ----------------- # Determine the directory containing using distutils. AC_DEFUN([CIT_PYTHON_INCDIR], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([AM_PATH_PYTHON]) AC_CACHE_CHECK([for $am_display_PYTHON include directory], [PYTHON_INCDIR], [PYTHON_INCDIR=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_inc()" 2>/dev/null || echo "$PYTHON_PREFIX/include/python$PYTHON_VERSION"`]) AC_SUBST([PYTHON_INCDIR], [$PYTHON_INCDIR]) ])dnl CIT_PYTHON_INCDIR # CIT_CHECK_PYTHON_HEADER # ----------------------- # Checking the existence of Python.h AC_DEFUN([CIT_CHECK_PYTHON_HEADER], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([CIT_PYTHON_INCDIR]) cit_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="-I$PYTHON_INCDIR $cit_save_CPPFLAGS" AC_CHECK_HEADER([Python.h], [], [ AC_MSG_ERROR([Header file 'Python.h' not found; maybe you don't have the python development package, e.g. 'python-dev', installed?]) ]) CPPFLAGS=$cit_save_CPPFLAGS ])dnl CIT_CHECK_PYTHON_HEADER # CIT_CHECK_PYTHON_SHARED # ----------------------- # Check whether -lpythonX.X is a shared library. AC_DEFUN([CIT_CHECK_PYTHON_SHARED], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([CIT_PYTHON_CONFIG]) AC_MSG_CHECKING([whether -lpython$PYTHON_VERSION is a shared library]) cit_save_CPPFLAGS=$CPPFLAGS cit_save_LDFLAGS=$LDFLAGS cit_save_LIBS=$LIBS CPPFLAGS="$PYTHON_CPPFLAGS $cit_save_CPPFLAGS" LDFLAGS="$PYTHON_LDFLAGS $cit_save_LDFLAGS" LIBS="$PYTHON_LIBS $cit_save_LIBS" AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include "Python.h" ]], [[ int status; Py_Initialize(); status = PyRun_SimpleString("import binascii") != 0; Py_Finalize(); return status; ]])], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) AC_MSG_ERROR([-lpython$PYTHON_VERSION is not a shared library]) ]) CPPFLAGS=$cit_save_CPPFLAGS LDFLAGS=$cit_save_LDFLAGS LIBS=$cit_save_LIBS ])dnl CIT_CHECK_PYTHON_SHARED # CIT_PYTHON_CONFIG # ----------------- AC_DEFUN([CIT_PYTHON_CONFIG], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING([$am_display_PYTHON config]) cat >python-config.py </dev/null` if test -n "$PYTHON_CPPFLAGS"; then AC_MSG_RESULT(ok) else AC_MSG_ERROR(["failed Run '$PYTHON python-config.py' to see what went wrong. "]) fi rm -f python-config.py AC_SUBST([PYTHON_CPPFLAGS], [$PYTHON_CPPFLAGS]) AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS]) AC_SUBST([PYTHON_LIBS], [$PYTHON_LIBS]) ])dnl CIT_PYTHON_CONFIG # CIT_PYTHON_SYSCONFIG # -------------------- AC_DEFUN([CIT_PYTHON_SYSCONFIG], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING([$am_display_PYTHON sysconfig]) cat >sysconfig.py </dev/null` if test -n "$PYTHON_INCDIR"; then AC_MSG_RESULT(ok) else AC_MSG_ERROR(["failed Run '$PYTHON sysconfig.py' to see what went wrong. "]) fi rm -f sysconfig.py AC_SUBST([PYTHON_INCDIR], [$PYTHON_INCDIR]) AC_SUBST([PYTHON_BLDLIBRARY], [$PYTHON_BLDLIBRARY]) AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS]) AC_SUBST([PYTHON_LDLAST], [$PYTHON_LDLAST]) AC_SUBST([PYTHON_LDLIBRARY], [$PYTHON_LDLIBRARY]) AC_SUBST([PYTHON_LIBDIR], [$PYTHON_LIBDIR]) AC_SUBST([PYTHON_LIBP], [$PYTHON_LIBP]) AC_SUBST([PYTHON_LIBPL], [$PYTHON_LIBPL]) AC_SUBST([PYTHON_LIBS], [$PYTHON_LIBS]) AC_SUBST([PYTHON_LINKFORSHARED], [$PYTHON_LINKFORSHARED]) AC_SUBST([PYTHON_MODLIBS], [$PYTHON_MODLIBS]) AC_SUBST([PYTHON_SYSLIBS], [$PYTHON_SYSLIBS]) AC_SUBST([PYTHON_LA_LDFLAGS], [$PYTHON_LA_LDFLAGS]) ])dnl CIT_PYTHON_SYSCONFIG # CIT_PYTHON_SITE # --------------- AC_DEFUN([CIT_PYTHON_SITE], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING([whether we are installing to Python's prefix]) cit_python_prefix=`$PYTHON -c "import sys; print sys.prefix"` if test "$cit_python_prefix" = "$prefix"; then AC_MSG_RESULT(yes) cit_cond_python_site=true else AC_MSG_RESULT(no) cit_cond_python_site=false fi AC_MSG_CHECKING([whether we are installing to Python's exec prefix]) cit_python_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` cit_exec_prefix=$exec_prefix test "x$cit_exec_prefix" = xNONE && cit_exec_prefix=$prefix if test "$cit_python_exec_prefix" = "$cit_exec_prefix"; then AC_MSG_RESULT(yes) cit_cond_pyexec_site=true else AC_MSG_RESULT(no) cit_cond_pyexec_site=false fi AM_CONDITIONAL([COND_PYTHON_SITE], [$cit_cond_python_site]) AM_CONDITIONAL([COND_PYEXEC_SITE], [$cit_cond_pyexec_site]) ])dnl CIT_PYTHON_SITE # CIT_CHECK_PYTHON_EGG(REQUIREMENT, # [ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]]) # -------------------------------------------------------------- # Check for REQUIREMENT using pkg_resources.require(). If the # corresponding distribution is found, execute ACTION-IF-FOUND. # Otherwise, execute ACTION-IF-NOT-FOUND. AC_DEFUN([CIT_CHECK_PYTHON_EGG], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_MSG_CHECKING([for "$1"]) cat >check_python_egg.py <>sys.stderr, e print "cit_egg_status=1" else: print "cit_egg_status=0" ] END_OF_PYTHON AS_IF([AC_TRY_COMMAND([$PYTHON check_python_egg.py >conftest.sh 2>&AS_MESSAGE_LOG_FD])], [], [AC_MSG_RESULT(failed) AC_MSG_FAILURE([cannot check for Python eggs])]) eval `cat conftest.sh` rm -f conftest.sh check_python_egg.py if test "$cit_egg_status" == 0; then AC_MSG_RESULT(yes) $2 else AC_MSG_RESULT(no) m4_default([$3], [AC_MSG_ERROR([required Python package not found: $1])]) fi ])dnl CIT_CHECK_PYTHON_EGG # CIT_PYTHON_EGG_SETUP # -------------------- AC_DEFUN([CIT_PYTHON_EGG_SETUP], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_REQUIRE([AM_PATH_PYTHON]) cit_builddir=`pwd` cit_save_PYTHONPATH="$PYTHONPATH" PYTHONPATH="$cit_builddir/python:$PYTHONPATH"; export PYTHONPATH cd $srcdir AC_MSG_NOTICE([downloading missing Python dependencies]) AS_IF([AC_TRY_COMMAND([$PYTHON setup.py install_deps -f $cit_builddir/deps -zmxd $cit_builddir/deps >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD])], [], [AC_MSG_FAILURE([cannot download missing Python dependencies])]) AC_MSG_NOTICE([building Python dependencies]) AS_IF([AC_TRY_COMMAND([$PYTHON setup.py develop -H None -f $cit_builddir/deps -x -d $cit_builddir/python >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD])], [], [AC_MSG_FAILURE([building Python dependencies])]) AC_MSG_CHECKING([for egg-related flags]) AS_IF([AC_TRY_COMMAND([$PYTHON setup.py egg_flags >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD])], [AC_MSG_RESULT(ok) . ./egg-flags.sh rm -f egg-flags.sh ], [AC_MSG_RESULT(failed) AC_MSG_FAILURE([cannot scan Python eggs for flags])]) cd $cit_builddir PYTHONPATH="$cit_save_PYTHONPATH" PYTHONPATH="${pythondir}:${pyexecdir}${cit_save_PYTHONPATH:+:${cit_save_PYTHONPATH}}" AC_SUBST(PYTHONPATH) AC_SUBST(PYTHON_EGG_CFLAGS) AC_SUBST(PYTHON_EGG_CPPFLAGS) AC_SUBST(PYTHON_EGG_LDFLAGS) AC_SUBST(PYTHON_EGG_LIBS) AC_SUBST(PYTHON_EGG_PYXFLAGS) ])dnl CIT_PYTHON_EGG_SETUP # CIT_PROG_PYCONFIG # ----------------- # Provide a simple Python script which generates a Python module to # expose our package configuration, similar to Python's # distutils.sysconfig. AC_DEFUN([CIT_PROG_PYCONFIG], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ PYCONFIG='$(top_builddir)/pyconfig' AC_SUBST(PYCONFIG) ofile=pyconfig cfgfile="${ofile}T" trap "rm \"$cfgfile\"; exit 1" 1 2 15 rm -f "$cfgfile" AC_MSG_NOTICE([creating $ofile]) cat >"$cfgfile" <>f, "#!/usr/bin/env python" print >>f print >>f, "config =", config_vars print >>f print >>f, "makefile =", makefile_vars print >>f print >>f, "# end of file" f.close() # end of file] END_OF_PYTHON mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ])dnl CIT_PROG_PYCONFIG # CIT_PATH_NEMESIS # ----------------- AC_DEFUN([CIT_PATH_NEMESIS], [ # $Id: cit_python.m4 16217 2010-02-02 23:44:16Z walter $ AC_BEFORE([$0], [AM_PATH_PYTHON]) AC_PATH_PROG(PYTHON, nemesis, no) if test "$PYTHON" = no; then AC_MSG_ERROR([program 'nemesis' not found]) fi ])dnl CIT_PATH_NEMESIS dnl end of file