LA_library/configure.ac

151 lines
4.8 KiB
Plaintext
Raw Normal View History

2009-10-07 16:37:01 +02:00
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
2019-03-30 18:01:03 +01:00
AC_INIT([libla], [0.8], [jiri@pittnerovi.com])
2009-10-07 16:37:01 +02:00
AC_CONFIG_HEADERS([config.h])
2009-11-13 16:14:37 +01:00
AC_CONFIG_MACRO_DIR([m4])
2019-03-30 18:01:03 +01:00
AM_PROG_AR
2009-10-07 16:37:01 +02:00
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
2009-11-13 16:14:37 +01:00
LT_INIT
2009-10-07 16:37:01 +02:00
# Checks for programs.
AC_PROG_CXX
2009-11-13 16:14:37 +01:00
AC_PROG_LIBTOOL
2009-10-07 16:37:01 +02:00
AC_PROG_CC
2009-11-13 16:14:37 +01:00
#AC_PROG_RANLIB obsoleted by libtool
2009-10-08 16:01:15 +02:00
AC_LANG(C++)
2009-10-07 16:37:01 +02:00
2009-11-13 16:14:37 +01:00
# Checks for mandatory libraries.
2010-10-22 15:46:59 +02:00
ATLASLIB=""
2019-03-30 18:01:03 +01:00
AC_CHECK_LIB([atlas], [ATL_zgemv],ATLASLIB="-lblas -latlas", [
2009-11-13 16:14:37 +01:00
echo "ATLAS not found, I hope you are using some other (more) efficient BLAS!"
])
2010-10-22 15:46:59 +02:00
AC_SUBST([ATLASLIB])
2009-11-13 16:14:37 +01:00
2019-03-30 18:01:03 +01:00
AC_CHECK_LIB([blas], [dgemm_],BLASLIB="-lblas", [
2010-10-22 15:46:59 +02:00
echo ERROR: BLAS not found! You have to install the BLAS library.
2009-11-13 16:14:37 +01:00
exit
2010-10-22 15:46:59 +02:00
],[$ATLASLIB])
AC_SUBST([BLASLIB])
2009-11-13 16:14:37 +01:00
2010-09-08 15:30:20 +02:00
MATPTROPT=""
AC_ARG_ENABLE([matptr],[ --enable-matptr switch to double** matrix representation (CUDA incompatible) [[default=no]]],
[case "${enableval}" in
yes) MATPTROPT="-DMATPTR" ;;
no) ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-matptr]) ;;
esac],
,)
2010-06-18 14:54:26 +02:00
#cblas and clapack available?
2019-03-30 18:01:03 +01:00
AC_CHECK_LIB([cblas], [cblas_ddot], [CBLASLIB="-lcblas"], [CBLASOPT=-DNONCBLAS],[$ATLASLIB])
2010-06-18 14:54:26 +02:00
AC_CHECK_HEADER([cblas.h],,[CBLASOPT=-DNONCBLAS CBLASLIB=""], AC_INCLUDES_DEFAULT)
2009-10-07 16:37:01 +02:00
AC_SUBST([CBLASLIB])
AC_SUBST([CBLASOPT])
2010-10-22 15:46:59 +02:00
AC_CHECK_LIB([lapack], [dgeev_],, [
echo ERROR: LAPACK not found! You have to install the LAPACK library
exit
],[$CBLASLIB $BLASLIB $ATLASLIB])
AC_CHECK_LIB([lapack], [clapack_dgesv], , [CLAPACKOPT=-DNONCLAPACK],[$CBLASLIB $BLASLIB $ATLASLIB])
2010-06-18 14:54:26 +02:00
AC_CHECK_HEADER([clapack.h],,[CLAPACKOPT=-DNONCLAPACK], AC_INCLUDES_DEFAULT)
2009-10-07 16:56:32 +02:00
AC_SUBST([CLAPACKOPT])
2010-10-22 15:46:59 +02:00
2010-06-18 14:54:26 +02:00
#CUDA available? link with cublas and avoid cblas and clapack then...
2010-09-08 15:30:20 +02:00
AC_CHECK_LIB([cublas], [cublasInit], [MATPTROPT="" NVCC=nvcc NVCCFLAGS="-O -arch sm_20" CUDALIBS=-lcublas CUDAOPT=-DCUDALA CBLASOPT=-DNONCBLAS CLAPACKOPT=-DNONCLAPACK CBLASLIB=""], [CUDALIB="" CUDAOPT=""])
2010-06-18 14:54:26 +02:00
AC_CHECK_HEADER([cublas.h],,[CUDAOPT="" CUDALIBS=""], AC_INCLUDES_DEFAULT)
AC_SUBST([CUDALIBS])
AC_SUBST([CUDAOPT])
2010-09-08 15:30:20 +02:00
AC_SUBST([NVCC])
AC_SUBST([NVCCFLAGS])
AC_SUBST([MATPTROPT])
2010-06-18 14:54:26 +02:00
2009-10-07 16:37:01 +02:00
#the check for traceback needs bfd to be linked into
AC_CHECK_LIB([bfd], [bfd_fprintf_vma])
2009-11-13 16:14:37 +01:00
AC_CHECK_LIB([traceback], [sigtraceback], [TRACEBACKLIB="-ltraceback -lbfd" TRACEBACKOPT="-DUSE_TRACEBACK -fno-omit-frame-pointer"])
2009-10-07 16:37:01 +02:00
AC_SUBST([TRACEBACKOPT])
AC_SUBST([TRACEBACKLIB])
2009-11-13 16:14:37 +01:00
#process options
2010-06-18 14:54:26 +02:00
FORINTOPT=""
AC_ARG_ENABLE([fotran64int],[ --enable-fotran64int to link with 64-bit-integer-BLAS+LAPACK ],
[case "${enableval}" in
yes) FORINTOPT="-DLONG_FORTRAN_INT"
CBLASLIB=""
CBLASOPT=-DNONCBLAS
CLAPACKOPT=-DNONCLAPACK
;;
no) FORINTOPT="" ;;
*) FORINTOPT=${enableval}
esac],
,)
AC_SUBST([FORINTOPT])
2009-11-13 16:14:37 +01:00
OPTIMIZEOPT="-O3 -finline-limit=1000"
AC_ARG_ENABLE([optimize],[ --enable-optimize to compile with optimization [[default= -O3 -finline-limit=1000]]],
[case "${enableval}" in
yes) ;;
no) OPTIMIZEOPT="" ;;
*) OPTIMIZEOPT=${enableval}
esac],
,)
AC_SUBST([OPTIMIZEOPT])
DEBUGOPT="-DDEBUG"
AC_ARG_ENABLE([debug],[ --disable-debug not to perform some range-checking [[default=yes]]],
[case "${enableval}" in
yes) ;;
no) DEBUGOPT="" ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
esac],
,)
AC_SUBST([DEBUGOPT])
2009-10-07 16:37:01 +02:00
# Checks for header files.
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/vfs.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_CHECK_MEMBERS([struct stat.st_blksize])
# Checks for library functions.
AC_CHECK_FUNCS([getpagesize memset sqrt])
2010-10-22 15:46:59 +02:00
#Doxygen support
DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.cfg)
2009-10-07 16:37:01 +02:00
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
2009-11-13 16:14:37 +01:00
echo
echo "**********************************************************************************"
echo "The LA library has now been configured. You may run make; make check; make install"
echo "Please make sure that the generated Makefile employs a proper version of optimized"
echo "BLAS/LAPACK library. If not, re-run configure with CXXFLAGS and LDFLAGS options "
2010-06-18 14:54:26 +02:00
echo "set to '-I path' and '-L path' for your preferred BLAS/LAPACK library version. "
echo "In addition, similarly you might set include and link paths for Nvidia CUBLAS. "
2010-10-22 15:46:59 +02:00
echo "Use ./configure --disable-optimize CXXFLAGS='' LDFLAGS='' for a fast compile. "
echo "Use --enable-fotran64int to link with BLAS and LAPACK using 64-bit integers. "
echo "For documentation, 'make doxygen-doc' and see doxygen-doc/html/index.html "
2009-11-13 16:14:37 +01:00
echo "For usage examples see file t.cc. Do not forget using copyonwrite() before "
2010-10-22 15:46:59 +02:00
echo "changing individual matrix/vector elements via l.h.s. operator() "
2009-11-13 16:14:37 +01:00
echo "**********************************************************************************"
2010-10-22 15:46:59 +02:00
echo
2010-06-18 14:54:26 +02:00