qmckl/configure.ac.dist.in

169 lines
4.6 KiB
Plaintext

# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
#
# configure script for maintainers.
AC_PREREQ([2.69])
AC_INIT([@PACKAGE_NAME@],[@PACKAGE_VERSION@],
[@PACKAGE_BUGREPORT@], [],
[@PACKAGE_URL@])
AC_CONFIG_SRCDIR([src/qmckl_ao.c])
AC_CONFIG_HEADERS([include/config.h])
AC_CONFIG_MACRO_DIR([m4])
#AM_MAINTAINER_MODE
VERSION_MAJOR=`echo ${PACKAGE_VERSION} | cut -d. -f1`
VERSION_MINOR=`echo ${PACKAGE_VERSION} | cut -d. -f2`
VERSION_PATCH=`echo ${PACKAGE_VERSION} | cut -d. -f3 | cut -d- -f1`
AC_DEFINE_UNQUOTED(QMCKL_VERSION_MAJOR, [$VERSION_MAJOR], [major version])
AC_DEFINE_UNQUOTED(QMCKL_VERSION_MINOR, [$VERSION_MINOR], [minor version])
AC_DEFINE_UNQUOTED(QMCKL_VERSION_PATCH, [$VERSION_PATCH], [patch version])
#AM_INIT_AUTOMAKE([foreign color-tests parallel-tests silent-rules 1.11])
#AM_SILENT_RULES(yes)
#AC_SUBST(SHARED_VERSION_INFO)
#AM_ENABLE_SHARED(no) dnl shared libs cause too many headaches to be default
#AC_PROG_LIBTOOL
AC_LANG(C)
# Checks for programs.
AC_PROG_CC
AC_PROG_CC_C_O
AC_PROG_FC
AC_PROG_FC_C_O
AC_FC_SRCEXT([f90])
AC_FC_FREEFORM
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_CC_C99
PKG_PROG_PKG_CONFIG()
PKG_LIBS=""
PKG_CFLAGS=""
# fPIC option
AC_MSG_CHECKING(whether fPIC compiler option is accepted in C)
SAVED_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} -fPIC -Werror"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return 0;])],
[AC_MSG_RESULT(yes)
CFLAGS="${SAVED_CFLAGS} -fPIC"],
[AC_MSG_RESULT(no)
CFLAGS="${SAVED_CFLAGS}"])
AC_MSG_CHECKING(whether fPIC compiler option is accepted in Fortran)
FCFLAGS="${FCFLAGS} -fPIC -Werror"
SAVED_FCFLAGS="${FCFLAGS}"
AC_LANG_PUSH(Fortran)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
[AC_MSG_RESULT(yes)
FCFLAGS="${SAVED_FCFLAGS} -fPIC"],
[AC_MSG_RESULT(no)
FCFLAGS="${SAVED_FCFLAGS}"])
AC_LANG_POP()
# Checks for libraries.
AC_FC_LIBRARY_LDFLAGS
AC_CHECK_LIB([m], [sqrt])
AC_CHECK_HEADERS([assert.h errno.h malloc.h math.h pthread.h stdbool.h stdint.h stdio.h stdlib.h string.h])
## pthread
AC_CHECK_LIB([pthread], [pthread_create])
# OpenMP
AC_ARG_WITH(openmp, [AC_HELP_STRING([--with-openmp],[enable OpenMP])], with_omp=$withval, with_omp=no)
if test "x$with_omp" = xyes; then
AC_DEFINE([USE_OPENMP], [1], [Define to use OpenMP threading.])
AX_OPENMP([],
[AC_MSG_ERROR([Could not find OpenMP flags; configure with --without-openmp])])
CFLAGS="${CFLAGS} ${OPENMP_CFLAGS}"
fi
## BLAS
AX_BLAS([], [AC_MSG_ERROR([BLAS was not found.])])
## LAPACK
AX_LAPACK([], [AC_MSG_ERROR([LAPACK was not found.])])
# Checks for header files.
## qmckl
AC_CHECK_HEADERS([inttypes.h malloc.h stdint.h stdlib.h string.h strings.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
## qmckl
AC_CHECK_HEADER_STDBOOL
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_SIZE_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
# Checks for library functions.
## qmckl
AC_FUNC_MALLOC
AC_CHECK_FUNCS([memset strerror])
# Options.
AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug],[compile for debugging])], ok=$enableval, ok=no)
if test "$ok" = "yes"; then
if test "$GCC" = "yes"; then
CFLAGS="$CFLAGS \
-Wall -W -Wbad-function-cast -Wcast-qual \
-Wpointer-arith -Wcast-align -Wpedantic -Wextra -fmax-errors=3"
fi
if test "$GFC" = "yes"; then
FCFLAGS="$FCFLAGS \
-fcheck=all -Waliasing -Wampersand -Wconversion \
-Wsurprising -ffpe-trap=zero,overflow,underflow \
-Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation \
-Wreal-q-constant -Wuninitialized -fbacktrace -finit-real=nan"
fi
if test "$FC" = "ifort"; then
FCFLAGS="$FCFLAGS \
-traceback -check all -debug all -fpe-all=0 -implicitnone"
fi
AC_DEFINE(DEBUG,1,[Define to turn on debugging checks])
fi
AC_ARG_ENABLE(debug-malloc, [AC_HELP_STRING([--enable-debug-malloc],[use debug malloc/free])], ok=$enableval, ok=no)
if test "$ok" = "yes"; then
AC_DEFINE(DEBUG_MALLOC,1,[Define to use debugging malloc/free])
fi
AC_ARG_ENABLE(prof, [AC_HELP_STRING([--enable-prof],[compile for profiling])], ok=$enableval, ok=no)
if test "$ok" = "yes"; then
CFLAGS="${CFLAGS} -pg"
AC_DEFINE(ENABLE_PROF,1,[Define when using the profiler tool])
fi
AC_ARG_WITH(efence, [AC_HELP_STRING([--with-efence],[use ElectricFence library])], ok=$withval, ok=no)
if test "$ok" = "yes"; then
AC_CHECK_LIB(efence, malloc)
fi
#PKG-CONFIG
#mkl-dynamic-lp64-seq
LIBS="${LAPACK_LIBS} ${BLAS_LIBS} ${LIBS}"
PKG_LIBS="${PKG_LIBS} ${LIBS}"
AC_SUBST([PKG_LIBS])
AC_SUBST([PKG_CFLAGS])
AC_CONFIG_FILES([Makefile
qmckl.pc
src/Makefile
])
AC_OUTPUT