[cig-commits] r13602 - in cs/cigma/trunk: . config
luis at geodynamics.org
luis at geodynamics.org
Tue Dec 9 18:15:42 PST 2008
Author: luis
Date: 2008-12-09 18:15:42 -0800 (Tue, 09 Dec 2008)
New Revision: 13602
Added:
cs/cigma/trunk/config/cigma_boost.m4
Modified:
cs/cigma/trunk/Makefile.am
cs/cigma/trunk/config/cigma_python.m4
cs/cigma/trunk/configure.ac
Log:
Replaced DEB_AX_PYTHON and DEB_AX_BOOST_PYTHON by own macros
Modified: cs/cigma/trunk/Makefile.am
===================================================================
--- cs/cigma/trunk/Makefile.am 2008-12-10 02:15:40 UTC (rev 13601)
+++ cs/cigma/trunk/Makefile.am 2008-12-10 02:15:42 UTC (rev 13602)
@@ -265,7 +265,7 @@
##lib_LTLIBRARIES += libcigma.la
##libpycigma_la_SOURCES = foo.cpp
-##libpycigma_la_CPPFLAGS = $(libcigma_a_CPPFLAGS) $(PYTHON_INCLUDE_DIR)
+##libpycigma_la_CPPFLAGS = $(libcigma_a_CPPFLAGS) $(PYTHON_INCLUDES)
# XXX: uncomment
#pyexec_PROGRAMS = _cigma.so
@@ -284,7 +284,7 @@
CFLAGS="$(CPPFLAGS) -I$(top_srcdir)/src $(libcigma_a_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)" \
LDFLAGS="$(LDFLAGS) -L$$BUILD_DIR/.libs" \
ARCHFLAGS="$(ARCHFLAGS)" PYLIBS="$(PYLIBS)" \
- $(PYTHON_BIN) src/py_cigma_setup.py build --build-lib=$$BUILD_DIR/ --build-temp=$$BUILD_DIR/pybuild -f)
+ $(PYTHON) src/py_cigma_setup.py build --build-lib=$$BUILD_DIR/ --build-temp=$$BUILD_DIR/pybuild -f)
_cigma_so_cxxflags =
_cigma_so_cxxflags += -I$(top_srcdir)/src
Added: cs/cigma/trunk/config/cigma_boost.m4
===================================================================
--- cs/cigma/trunk/config/cigma_boost.m4 (rev 0)
+++ cs/cigma/trunk/config/cigma_boost.m4 2008-12-10 02:15:42 UTC (rev 13602)
@@ -0,0 +1,67 @@
+i##############################################################################
+# -*- Autoconf -*-
+#
+#
+
+
+###############################################################################
+#
+# CIGMA_BOOST_PYTHON
+#
+
+AC_DEFUN([CIGMA_BOOST_PYTHON],[
+
+ AC_REQUIRE([CIGMA_PYTHON])
+
+ AS_VAR_PUSHDEF([ax_BoostPython], [ax_cv_boost_python])dnl
+ AC_LANG_PUSH([C++])
+ ax_cv_boost_python_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="-I$PYTHON_INCDIR $CPPFLAGS"
+ AC_CHECK_HEADER([boost/python.hpp],
+ [AC_DEFINE([HAVE_BOOST_PYTHON],,[define if the Boost::Python library is available])])
+ CPPFLAGS=$ax_cv_boost_python_save_CPPFLAGS
+ AC_LANG_POP([C++])
+
+ ax_python_lib=boost_python
+ AC_ARG_WITH([boost-python],
+ AS_HELP_STRING([--with-boost-python],[specify the boost python library to use]),
+ [ax_python_lib=$withval],
+ [for suffix in mt st gcc-mt gcc gcc41-mt gcc41 gcc42-mt gcc42; do
+ ax_python_lib_extra="$ax_python_lib_extra $ax_python_lib-$suffix";
+ done;
+ ax_python_lib="$ax_python_lib $ax_python_lib_extra"]
+ )
+
+ AS_VAR_PUSHDEF([ax_Search], [ax_cv_search])dnl
+ AC_CACHE_CHECK([for Usable Boost::Python library], [ax_Search],
+ [AC_LANG_PUSH([C++])
+ ax_cv_search_save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="-I$PYTHON_INCDIR $CXXFLAGS"
+ ax_cv_search_save_LIBS=$LIBS
+ for ax_current_lib in $ax_python_lib; do
+ ax_res=-l$ax_current_lib
+ LIBS="-l$ax_current_lib $PYTHON_BLDLIBRARY $ax_cv_search_save_LIBS"
+ AC_LINK_IFELSE([#include <boost/python/module.hpp>
+ using namespace boost::python;
+ BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }
+ int main() {return 0;}],
+ [AS_VAR_SET([ax_Search], [$ax_res])])
+ AS_VAR_SET_IF([ax_Search], [break])dnl
+ done
+ AS_VAR_SET_IF([ax_Search], , [AS_VAR_SET([ax_Search], [no])])
+ LIBS=$ax_cv_search_save_LIBS
+ AC_LANG_POP([C++])]
+ )
+
+ ax_res=AS_VAR_GET([ax_Search])
+ AS_IF([test "$ax_res" != "no"],
+ [BOOST_PYTHON_LIBS="$ax_res"
+ AC_SUBST(BOOST_PYTHON_LIBS)
+ AC_DEFINE([HAVE_BOOST_PYTHON],,[define if the Boost::Python library is available])],
+ [AS_WARN([No suitable Boost::Python library found])])dnl
+ AS_VAR_POPDEF([ax_Search])dnl
+
+])
+
+
+# vim: syntax=config
Modified: cs/cigma/trunk/config/cigma_python.m4
===================================================================
--- cs/cigma/trunk/config/cigma_python.m4 2008-12-10 02:15:40 UTC (rev 13601)
+++ cs/cigma/trunk/config/cigma_python.m4 2008-12-10 02:15:42 UTC (rev 13602)
@@ -3,9 +3,132 @@
#
#
+##############################################################################
+#
+# CIGMA_PYTHON
+#
+AC_DEFUN([CIGMA_PYTHON],[
+ AC_REQUIRE([CIGMA_PYTHON_SYSCONFIG])
+ PYTHON_INCLUDES="-I$PYTHON_INCDIR"
+ AC_SUBST([PYTHON_INCLUDES])
+])
##############################################################################
#
+# CIGMA_PYTHON_SYSCONFIG
+#
+AC_DEFUN([CIGMA_PYTHON_SYSCONFIG], [
+
+ AC_REQUIRE([AM_PATH_PYTHON])
+ AC_MSG_CHECKING([$am_display_PYTHON sysconfig])
+
+cat >sysconfig.py <<END_OF_PYTHON
+[import os, sys
+from distutils import sysconfig
+def cygpath(wpath):
+ s = os.popen('cygpath -u "%s"' % wpath)
+ path = s.read().strip()
+ s.close()
+ return path
+incdir = sysconfig.get_python_inc()
+keys = (
+ 'BLDLIBRARY',
+ 'LDFLAGS',
+ 'LDLAST',
+ 'LDLIBRARY',
+ 'LIBDIR',
+ 'LIBP',
+ 'LIBPL',
+ 'LIBS',
+ 'LINKFORSHARED',
+ 'MODLIBS',
+ 'SYSLIBS',
+ 'LA_LDFLAGS',
+)
+if os.name == "nt":
+ # We are running under Python for Windows (the real one...
+ # not Cygwin Python, under which 'os.name' is 'posix').
+ # We assume that we are still in the Cygwin POSIX environment,
+ # however (this is 'configure', after all); so we convert
+ # all Windows pathnames to POSIX pathnames using 'cygpath'.
+ incdir = cygpath(incdir)
+ vars = {}
+ libs = os.path.join(sys.prefix, "libs")
+ libs = cygpath(libs)
+ version = sysconfig.get_python_version()
+ version = version.replace('.', '')
+ vars['BLDLIBRARY'] = "-L%s -lpython%s" % (libs, version)
+else:
+ vars = sysconfig.get_config_vars()
+ # transform AIX's python.exp
+ vars['LINKFORSHARED'] = vars['LINKFORSHARED'].replace('Modules',vars['LIBPL'])
+ if vars['LDLIBRARY'] == vars['LIBRARY']:
+ # "On systems without shared libraries, LDLIBRARY is the same as LIBRARY"
+ vars['BLDLIBRARY'] = "-L%(LIBPL)s -lpython%(VERSION)s" % vars
+ elif vars['BLDLIBRARY']:
+ # The 'mpicc' wrapper for LAM/MPI isn't very smart about "-L"
+ # options. Adding "-L/usr/lib" can cause "-lmpi" to be found in /usr/lib
+ # instead of LAM's 'lib' directory. Of course, avoiding "-L/usr/lib"
+ # doesn't really fix the problem, but it does make it much less likely;
+ # and "-L/usr/lib" is redundant and potentially problematic anyway.
+ # Python 2.4 and later puts a symlink to libpython.so in LIBPL
+ # (/usr/lib/python2.x/config), which makes adding "-L$LIBDIR"
+ # (in addition to "-L$LIBPL") completely redundant.
+ # But we still support Python 2.3, and we prefer shared to static,
+ # so we still add "-L$LIBDIR" when Python is installed in a non-standard
+ # location. Note that the linker will still prefer shared over static
+ # with only "-L/usr/lib/python2.3/config" on the link line.
+ libdir = ""
+ if vars['LIBDIR'] != "/usr/lib":
+ libdir = "-L%(LIBDIR)s "
+ # Important: on Cygwin, the import library for libpython.dll is
+ # nested inside Python's 'config' directory (see Issue39). This means
+ # that the linker always needs help finding "-lpython2.x" (in the form
+ # of "-L$LIBPL"), even for the "system" Python installed under /usr.
+ vars['BLDLIBRARY'] = (libdir + "-L%(LIBPL)s -lpython%(VERSION)s") % vars
+ else:
+ # "On Mac OS X frameworks, BLDLIBRARY is blank"
+ # See also Issue39.
+ framework = "%(PYTHONFRAMEWORKDIR)s/Versions/%(VERSION)s/%(PYTHONFRAMEWORK)s" % vars
+ PYTHONFRAMEWORK = vars.get('PYTHONFRAMEWORK', 'Python')
+ vars['LINKFORSHARED'] = vars['LINKFORSHARED'].replace(framework, "-framework " + PYTHONFRAMEWORK)
+ vars['LA_LDFLAGS'] = "-Wl,-framework,%s" % PYTHONFRAMEWORK
+vars['LDFLAGS'] = '' # only causes trouble (e.g., "-arch i386 -arch ppc" on Mac) -- see issue97
+print 'PYTHON_INCDIR="%s"' % incdir
+for key in keys:
+ print 'PYTHON_%s="%s"' % (key, vars.get(key, ''))
+]
+END_OF_PYTHON
+
+ eval `$PYTHON sysconfig.py 2>/dev/null`
+ if test -n "$PYTHON_INCDIR"; then
+ AC_MSG_RESULT(ok)
+ else
+ AC_MSG_ERROR(["failed
+
+Run '$PYTHON sysconfig.py' to see what 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
+
+
+##############################################################################
+#
# CIGMA_PYTHON_INCDIR
#
# Determine the directory containing <Python.h> using distutils.
@@ -22,10 +145,13 @@
AC_SUBST([PYTHON_INCDIR])
])
+
##############################################################################
#
# CIGMA_CHECK_NUMPY
#
+# Check whether we can import the numpy module, and determine its version number.
+#
AC_DEFUN([CIGMA_CHECK_NUMPY],[
AC_REQUIRE([AM_PATH_PYTHON])
Modified: cs/cigma/trunk/configure.ac
===================================================================
--- cs/cigma/trunk/configure.ac 2008-12-10 02:15:40 UTC (rev 13601)
+++ cs/cigma/trunk/configure.ac 2008-12-10 02:15:42 UTC (rev 13602)
@@ -30,6 +30,7 @@
dnl Check for Python
AM_PATH_PYTHON(2.4, :)
+CIGMA_PYTHON_SYSCONFIG
if [ test "$PYTHON" != : ]; then
AM_CONDITIONAL(HAVE_PYTHON, true)
else
@@ -49,12 +50,15 @@
AX_BOOST_FILESYSTEM
AX_BOOST_PROGRAM_OPTIONS
-DEB_AX_PYTHON
-echo "PYTHON_BIN is '$PYTHON_BIN'"
-echo "PYTHON_INCLUDE_DIR is '$PYTHON_INCLUDE_DIR'"
-echo "PYTHON_LIB is '$PYTHON_LIB'"
+#DEB_AX_PYTHON
+#echo "PYTHON_BIN is '$PYTHON_BIN'"
+#echo "PYTHON_INCLUDE_DIR is '$PYTHON_INCLUDE_DIR'"
+#echo "PYTHON_LIB is '$PYTHON_LIB'"
+#DEB_AX_BOOST_PYTHON
+#echo "BOOST_PYTHON_LIBS is '$BOOST_PYTHON_LIBS'"
-DEB_AX_BOOST_PYTHON
+CIGMA_BOOST_PYTHON
+echo "PYTHON is '$PYTHON'"
echo "BOOST_PYTHON_LIBS is '$BOOST_PYTHON_LIBS'"
if test -z "$BOOST_PYTHON_LIBS"; then
AC_MSG_ERROR([[boost::python could not be found. Please ensure that LDFLAGS is configured properly, or specify --with-boost]])
@@ -102,11 +106,12 @@
echo "-"
echo "- PYTHON : $PYTHON"
-echo "- PYTHON_BIN : $PYTHON_BIN"
-echo "- PYTHON_INCLUDE_DIR : $PYTHON_INCLUDE_DIR"
+echo "- PYTHON_INCLUDES : $PYTHON_INCLUDES"
echo "- PYTHON_LIBS : $PYTHON_LIBS"
+echo "- PYTHON_BLDLIBRARY : $PYTHON_BLDLIBRARY"
echo "- PYTHON_NUMPY : $PYTHON_NUMPY"
echo "- PYTHON_NUMPY_VERSION : $PYTHON_NUMPY_VERSION"
+echo "- NUMPY_INCLUDES : $NUMPY_INCLUDES"
# if using tsuna_boost.m4
#echo "-"
More information about the CIG-COMMITS
mailing list