https://github.com/geodynamics/citcoms
Tip revision: b5721c162b1b01c9fdbfb544f8d60bf3742dd916 authored by Eric Heien on 02 August 2011, 16:52:33 UTC
Further work in converting tracer code to C++
Further work in converting tracer code to C++
Tip revision: b5721c1
configure.ac
dnl -*- Autoconf -*-
dnl Process this file with autoconf to produce a configure script.
dnl
dnl<LicenseText>
dnl
dnl CitcomS.py by Eh Tan, Eun-seo Choi, and Pururav Thoutireddy.
dnl Copyright (C) 2002-2005, California Institute of Technology.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dnl
dnl</LicenseText>
# $Id$
AC_PREREQ(2.59)
AC_INIT([CitcomS], [3.1.0], [cig-mc@geodynamics.org], [CitcomS])
AC_CONFIG_AUX_DIR([./aux-config])
AC_CONFIG_SRCDIR([bin/Citcom.c])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
# 'configure' options
AC_ARG_VAR(PYTHON, [Python interpreter])
AC_ARG_VAR(PYTHONPATH, [Python module search path])
AC_ARG_WITH([pyre],
[AC_HELP_STRING([--with-pyre],
[build Pyre modules @<:@default=yes@:>@])],
[want_pyre="$withval"],
[want_pyre=yes])
AM_CONDITIONAL([COND_PYRE], [test "$want_pyre" = yes])
AC_ARG_ENABLE([embedding],
[AC_HELP_STRING([--enable-embedding],
[embed Python with CitcomS in a single executable @<:@default=yes@:>@])],
[want_embedding="$enableval"],
[want_embedding=yes])
AM_CONDITIONAL([COND_EMBEDDING], [test "$want_embedding" = yes])
CIT_ARG_HDF5([auto])
AC_ARG_WITH([exchanger],
[AC_HELP_STRING([--with-exchanger],
[use Exchanger @<:@default=auto@:>@])],
[want_exchanger="$withval"],
[want_exchanger=auto])
AC_ARG_VAR(HC_HOME, [home path to HC program, used by --with-ggrd])
AC_ARG_WITH([ggrd],
[AC_HELP_STRING([--with-ggrd],
[use GGRD file support @<:@default=no@:>@])],
[want_ggrd="$withval"],
[want_ggrd=no])
AM_CONDITIONAL([COND_GGRD], [test "$want_ggrd" = yes])
AC_ARG_WITH([cuda],
[AC_HELP_STRING([--with-cuda],
[use CUDA @<:@default=no@:>@])],
[want_cuda="$withval"],
[want_cuda=no])
AM_CONDITIONAL([COND_CUDA], [test "$want_cuda" = yes])
# Checks for programs.
AC_PROG_CC([mpicc hcc mpcc mpcc_r mpxlc cmpicc gcc cc cl icc ecc pgcc xlc xlc_r])
AC_PROG_CXX([mpicxx mpic++ mpiCC hcp mpCC mpxlC mpxlC_r cmpic++ g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlc++_r xlC_r xlC icpc ecpc pgCC])
CC="$CXX"
CFLAGS="$CXXFLAGS"
# Checking a system header here so that CPP is always defined
AC_CHECK_HEADERS([malloc.h])
if test "$want_pyre" = yes; then
# Check for Python.
AM_PATH_PYTHON([2.3])
CIT_PYTHON_SYSCONFIG
CIT_CHECK_PYTHON_HEADER
# Check for Python modules and packages.
export want_exchanger
CIT_PYTHON_EGG_SETUP
CIT_PROG_PYCONFIG
AC_SUBST([pkgsysconfdir], [\${sysconfdir}/$PACKAGE])
# Compile C as C++.
dnl CC="$CXX"
dnl CFLAGS="$CXXFLAGS"
else
if test "$want_exchanger" = yes; then
AC_MSG_ERROR([Exchanger requires Pyre])
fi
want_exchanger=no
fi
# We don't need Fortran.
AC_PROVIDE([AC_PROG_F77])
AC_PROG_LIBTOOL
# Checks for libraries.
AC_SEARCH_LIBS([MPI_Init], [mpi mpich], [], [AC_MSG_ERROR([MPI library not found])])
CIT_CHECK_LIB_HDF5
CIT_CHECK_LIB_HDF5_PARALLEL
if test "$want_exchanger" != no; then
save_CC="$CC"
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CC="$CXX"
CFLAGS="$CXXFLAGS"
LIBS="$PYTHON_EGG_LDFLAGS $PYTHON_BLDLIBRARY $PYTHON_LIBS $PYTHON_MODLIBS $PYTHON_SYSLIBS $LIBS"
AC_CHECK_FUNC([PyExchanger_exchangeBoundedBox], [], [
if test "$want_exchanger" = auto; then
want_exchanger=no
AC_MSG_WARN([Exchanger library not found; disabling Exchanger support])
else
AC_MSG_ERROR([Exchanger library not found])
fi
])
CC="$save_CC"
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
fi
# Checks for header files.
AC_CHECK_HEADER([mpi.h], [], [AC_MSG_ERROR([header 'mpi.h' not found])])
CIT_CHECK_HEADER_HDF5
if test "$want_exchanger" != no; then
AC_LANG_PUSH(C++)
CIT_HEADER_MPI
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$PYTHON_EGG_CPPFLAGS $CPPFLAGS"
AC_CHECK_HEADERS([Exchanger/DIM.h], [], [
if test "$want_exchanger" = auto; then
want_exchanger=no
AC_MSG_WARN([header 'Exchanger/DIM.h' not found; disabling Exchanger support])
else
AC_MSG_ERROR([header 'Exchanger/DIM.h' not found])
fi
])
CPPFLAGS="$save_CPPFLAGS"
AC_LANG_POP()
fi
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
if test "$want_hdf5" != no; then
want_hdf5=yes
fi
if test "$want_exchanger" != no; then
want_exchanger=yes
fi
AM_CONDITIONAL([COND_HDF5], [test "$want_hdf5" = yes])
AM_CONDITIONAL([COND_EXCHANGER], [test "$want_exchanger" = yes])
AC_SEARCH_LIBS([gzopen], [z], [
CPPFLAGS="-DUSE_GZDIR $CPPFLAGS"
], [
AC_MSG_WARN([GZip library not found; disabling gzip support; try setting LDFLAGS to enable it])
])
# Check for ggrd support
if test "$want_ggrd" != no; then
# Checking netcdf.h, which is included by gmt_grd.h -> gmt.h
if test -n "$NETCDFHOME"; then
CPPFLAGS="$CPPFLAGS -I$NETCDFHOME/include"
fi
AC_CHECK_HEADER([netcdf.h],[],[AC_MSG_ERROR([header 'netcdf.h' not found, required by ggrd. Try setting environment variable NETCDEHOME.])])
# Checking gmt.h, which is included by hc.h
if test -n "$GMTHOME"; then
CPPFLAGS="$CPPFLAGS -I$GMTHOME/include"
fi
# Avoid including gmt_math.h when checking gmt.h
AC_CHECK_HEADER([gmt.h],[],[AC_MSG_ERROR([header 'gmt.h' not found, required by ggrd. Try setting environment variable GMTHOME.])],[
#define _GMT_MATH_H
])
# Checking hc.h
if test -n "$HC_HOME"; then
CPPFLAGS="$CPPFLAGS -I$HC_HOME -DUSE_GGRD"
fi
AC_CHECK_HEADER([hc.h], [], [AC_MSG_ERROR([header 'hc.h' not found, required by ggrd. Try setting environment variable HC_HOME.])])
# Checking NETCDF library
if test -n "$NETCDFHOME"; then
LDFLAGS="$LDFLAGS -L$NETCDFHOME/lib"
fi
AC_SEARCH_LIBS([nc_open], [netcdf], [], [AC_MSG_ERROR([NETCDF library not found, required by ggrd. Try setting environment variable NETCDEHOME.])])
# Checking GMT library
if test -n "$GMTHOME"; then
LDFLAGS="$LDFLAGS -L$GMTHOME/lib"
fi
AC_SEARCH_LIBS([GMT_grd_init], [gmt], [], [AC_MSG_ERROR([GMT library not found, required by ggrd. Try setting environment variable GMTHOME.])], [-lm])
# Checking HC ggrd library
if test -n "$HC_HOME"; then
if test -n "$ARCH"; then
LDFLAGS="$LDFLAGS -L$HC_HOME/objects/$ARCH"
else
LDFLAGS="$LDFLAGS -L$HC_HOME/objects"
fi
fi
AC_SEARCH_LIBS([ggrd_init_master], [ggrd], [], [AC_MSG_ERROR([HC ggrd library not found. Try setting environment variable HC_HOME.])],[-lm])
fi
AC_SEARCH_LIBS([sqrt], [m])
AC_CONFIG_FILES([Makefile
bin/Makefile
CitcomS/Makefile
etc/Makefile
examples/Makefile
lib/Makefile
module/Makefile
module/Exchanger/Makefile
tests/Makefile
visual/Makefile
visual/OpenDXMacro/Makefile])
AC_OUTPUT
# report configuration summary
echo -e "\n\n"
echo "================ Configuration Summary ================"
if test "$want_pyre" = yes; then
echo -e "\t PYTHON: " $PYTHON
echo -e "\t PYTHONPATH: " $PYTHONPATH
fi
echo -e "\t CC: " $CC
echo -e "\t CFLAGS: " $CFLAGS
echo -e "\t CPPFLAGS: " $CPPFLAGS
if test "$want_exchanger" != no; then
echo -e "\t CXX: " $CXX
echo -e "\t CXXFLAGS: " $CXXFLAGS
fi
echo -e "\t LDFLAGS: " $LDFLAGS
echo -e "\t LIBS: " $LIBS
echo -e "\t with-pyre: " $want_pyre
echo -e "\t with-exchanger: " $want_exchanger
echo -e "\t with-hdf5: " $want_hdf5
echo -e "\t with-ggrd: " $want_ggrd
echo
dnl end of configure.ac