Newer
Older
Kurt A. O'Hearn
committed
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([PG-PuReMD], [1.0], [ohearnku@msu.edu hma@msu.edu])
# Do not allow AC_PROG_CC to set CFLAGS (this line must be after AC_INIT but before AC_PROG_CC)
sav_CFLAGS="$CFLAGS"
Kurt A. O'Hearn
committed
: ${CFLAGS=""}
AM_INIT_AUTOMAKE([1.15 subdir-objects -Wall -Werror foreign])
# Enable silent build rules by default.
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY],[1])])
Kurt A. O'Hearn
committed
#AM_PROG_AR
#LT_PREREQ([2.2])
#LT_INIT([dlopen])
Kurt A. O'Hearn
committed
# Headline formatter
AC_DEFUN([CONFIGURE_HEADLINE],
[
echo; echo "+++ $1 +++"
])
Kurt A. O'Hearn
committed
AC_LANG([C])
Kurt A. O'Hearn
committed
# Checks for programs.
AC_PROG_CC([icc gcc clang cc])
Kurt A. O'Hearn
committed
AC_PROG_CPP
CFLAGS="$sav_CFLAGS"
Kurt A. O'Hearn
committed
Kurt A. O'Hearn
committed
AC_CONFIG_SRCDIR([src/torsion_angles.h])
AC_CONFIG_HEADERS([src/config.h])
Kurt A. O'Hearn
committed
# Checks for libraries.
AC_SEARCH_LIBS([exp], [m])
AC_SEARCH_LIBS([sqrt], [m])
AC_SEARCH_LIBS([pow], [m])
AC_SEARCH_LIBS([acos], [m])
AC_SEARCH_LIBS([cos], [m])
AC_SEARCH_LIBS([sin], [m])
AC_SEARCH_LIBS([tan], [m])
AC_SEARCH_LIBS([fabs], [m])
# Checks for typedefs, structures, and compiler characteristics.
AC_CHECK_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_SIZE_T
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_FUNC_STRTOD
Kurt A. O'Hearn
committed
# Check for compiler vendor
AX_COMPILER_VENDOR
Kurt A. O'Hearn
committed
if test "x${ax_cv_c_compiler_vendor}" = "xgnu"; then
if test "x${BUILD_DEBUG}" = "x"; then
CFLAGS="${CFLAGS} -Wall -O3 -funroll-loops -fstrict-aliasing"
Kurt A. O'Hearn
committed
else
Kurt A. O'Hearn
committed
CFLAGS="${CFLAGS} -Wall -O0 -g"
Kurt A. O'Hearn
committed
fi
fi
Kurt A. O'Hearn
committed
if test "x${ax_cv_c_compiler_vendor}" = "xintel"; then
if test "x${BUILD_DEBUG}" = "x"; then
Kurt A. O'Hearn
committed
CFLAGS="$CFLAGS -fast"
fi
fi
# Check for MPI support.
CONFIGURE_HEADLINE([ MPI compiler ])
ACX_MPI([], [AC_MSG_ERROR([could not find MPI library])])
AC_CHECK_PROG(MPIRUN, mpirun, mpirun)
AC_SUBST(MPIRUN)
# try to find if we are using OpenMPI / MPICH by looking inside mpi.h
Kurt A. O'Hearn
committed
sav_CC="${CC}"
sav_CFLAGS="${CFLAGS}"
CC="${MPICC}"
CFLAGS="${CFLAGS}"
AC_CHECK_DECL([OPEN_MPI], [mpi_vendor="OpenMPI"],
[], [#include "mpi.h"])
AC_CHECK_DECL([MPICH2], [mpi_vendor="MPICH2"],
AC_CHECK_DECL([MPICH_VERSION], [mpi_vendor="MPICH3"],
[], [#include "mpi.h"])
Kurt A. O'Hearn
committed
CC="${sav_CC}"
CFLAGS="${sav_CFLAGS}"
Kurt A. O'Hearn
committed
# try to set MPI_CFLAGS and MPI_LIBS
Kurt A. O'Hearn
committed
MPI_LIBS=
Kurt A. O'Hearn
committed
if test "x${mpi_vendor}" = "xOpenMPI"
Kurt A. O'Hearn
committed
MPI_CFLAGS=`${MPICC} --showme:compile`
MPI_LIBS=`${MPICC} --showme:link`
Kurt A. O'Hearn
committed
AC_MSG_NOTICE([MPI_CFLAGS=${MPI_CFLAGS}])
AC_MSG_NOTICE([MPI_LIBS=${MPI_LIBS}])
elif test "x${mpi_vendor}" = "xMPICH2" || test "x${mpi_vendor}" = "xMPICH3"
Kurt A. O'Hearn
committed
tmp=`${MPICC} -compile-info | awk '{$1=""; print $0 }'`
for i in $tmp
do
case $i in
-[[DIUbi]]*)
Kurt A. O'Hearn
committed
MPI_CFLAGS="${MPI_CFLAGS} ${i}"
Kurt A. O'Hearn
committed
# build MPI_LIBS
Kurt A. O'Hearn
committed
tmp=`${MPICC} -link-info | awk '{$1=""; print $0 }'`
for i in $tmp
do
case $i in
[[\\/]]*.a | ?:[[\\/]]*.a | -[[lLRu]]* | -Wl* )
Kurt A. O'Hearn
committed
MPI_LIBS="${MPI_LIBS} ${i}"
;;
esac
done
AC_MSG_NOTICE([MPICH found])
Kurt A. O'Hearn
committed
AC_MSG_NOTICE([MPI_CFLAGS=${MPI_CFLAGS}])
AC_MSG_NOTICE([MPI_LIBS=${MPI_LIBS}])
else
AC_MSG_WARN([Neither OpenMPI and MPICH have been recognized...])
fi
Kurt A. O'Hearn
committed
AC_SUBST(MPI_LIBS)
Kurt A. O'Hearn
committed
Kurt A. O'Hearn
committed
AC_LANG([C++])
# Checks for programs.
AC_PROG_CXX([icpc g++ clang++ c++])
Kurt A. O'Hearn
committed
AC_PROG_CXXCPP
AX_COMPILER_VENDOR
Kurt A. O'Hearn
committed
# Check for CUDA support.
Kurt A. O'Hearn
committed
if test "x${BUILD_GPU}" = "xyes"; then
Kurt A. O'Hearn
committed
CONFIGURE_HEADLINE([ CUDA support ])
AX_CUDA
Kurt A. O'Hearn
committed
Kurt A. O'Hearn
committed
NVCCFLAGS=
Kurt A. O'Hearn
committed
NVCCFLAGS+=" -ccbin=${CXX}"
Kurt A. O'Hearn
committed
if test "x${BUILD_DEBUG}" = "xtrue"
Kurt A. O'Hearn
committed
then
NVCCFLAGS+=" -g -G"
Kurt A. O'Hearn
committed
Kurt A. O'Hearn
committed
fi
AC_DEFINE([HAVE_CUDA], [1], [Define to 1 if you have CUDA support enabled.])
else
AM_CONDITIONAL(USE_CUDA, test "x" = "xyes")
fi
Kurt A. O'Hearn
committed
AM_CONDITIONAL(DEBUG, test "x${BUILD_DEBUG}" = "xtrue")
Kurt A. O'Hearn
committed
if test "BUILD_PROF" = "true"
then
Kurt A. O'Hearn
committed
if test "x${BUILD_GPU}" = "xyes"; then
Kurt A. O'Hearn
committed
NVCCFLAGS+=" --compiler-options ${gprof_flags}"
else
CFLAGS+=" ${gprof_flags}"
fi
fi
AC_CONFIG_FILES([Makefile])