https://github.com/geodynamics/citcoms
Raw File
Tip revision: 81148ac68c6a6c5f36acee477757317882decf5c authored by Eric Heien on 09 October 2014, 23:22 UTC
Merge branch 'master' into python-removal
Tip revision: 81148ac
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.3.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
CIT_ARG_HDF5([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])

# Checking a system header here so that CPP is always defined
AC_CHECK_HEADERS([malloc.h])

# 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

# Checks for header files.
AC_CHECK_HEADER([mpi.h], [], [AC_MSG_ERROR([header 'mpi.h' not found])])
CIT_CHECK_HEADER_HDF5

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

if test "$want_hdf5" != no; then
    want_hdf5=yes
fi
AM_CONDITIONAL([COND_HDF5], [test "$want_hdf5" = 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
                 etc/Makefile
                 examples/Makefile
                 lib/Makefile
                 tests/Makefile
                 Py2C/Makefile
                 visual/Makefile
                 visual/OpenDXMacro/Makefile])

AC_OUTPUT

# report configuration summary
echo -e "\n\n"
echo "================ Configuration Summary ================"
echo -e "\t CC: " $CC
echo -e "\t CFLAGS: " $CFLAGS
echo -e "\t CPPFLAGS: " $CPPFLAGS
echo -e "\t LDFLAGS: " $LDFLAGS
echo -e "\t LIBS: " $LIBS
echo -e "\t with-hdf5: " $want_hdf5
echo -e "\t with-ggrd: " $want_ggrd
echo

dnl end of configure.ac
back to top