diff options
author | Willem Jan Palenstijn <WillemJan.Palenstijn@uantwerpen.be> | 2013-07-01 22:34:11 +0000 |
---|---|---|
committer | wpalenst <WillemJan.Palenstijn@uantwerpen.be> | 2013-07-01 22:34:11 +0000 |
commit | b2fc6c70434674d74551c3a6c01ffb3233499312 (patch) | |
tree | b17f080ebc504ab85ebb7c3d89f917fd87ce9e00 /build/linux/configure.ac | |
download | astra-b2fc6c70434674d74551c3a6c01ffb3233499312.tar.gz astra-b2fc6c70434674d74551c3a6c01ffb3233499312.tar.bz2 astra-b2fc6c70434674d74551c3a6c01ffb3233499312.tar.xz astra-b2fc6c70434674d74551c3a6c01ffb3233499312.zip |
Update version to 1.3
Diffstat (limited to 'build/linux/configure.ac')
-rw-r--r-- | build/linux/configure.ac | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/build/linux/configure.ac b/build/linux/configure.ac new file mode 100644 index 0000000..ad1d36c --- /dev/null +++ b/build/linux/configure.ac @@ -0,0 +1,185 @@ +dnl ----------------------------------------------------------------------- +dnl Copyright 2012 iMinds-Vision Lab, University of Antwerp +dnl +dnl Contact: astra@ua.ac.be +dnl Website: http://astra.ua.ac.be +dnl +dnl +dnl This file is part of the +dnl All Scale Tomographic Reconstruction Antwerp Toolbox ("ASTRA Toolbox"). +dnl +dnl The ASTRA Toolbox 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 3 of the License, or +dnl (at your option) any later version. +dnl +dnl The ASTRA Toolbox 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 the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>. +dnl +dnl ----------------------------------------------------------------------- +dnl $Id$ + +AC_INIT(astra_toolbox, 1.3.0) +AC_CONFIG_SRCDIR([Makefile.in]) +LT_INIT([disable-static]) + +SAVED_CPPFLAGS="$CPPFLAGS" +SAVED_CXXFLAGS="$CXXFLAGS" +SAVED_LDFLAGS="$LDFLAGS" + +AC_CANONICAL_BUILD +AC_CANONICAL_HOST + +AC_PROG_CC +AC_PROG_CXX +AC_PROG_INSTALL +AC_PROG_LIBTOOL +AC_PROG_MAKE_SET + +AC_LANG([C++]) + +dnl Use iostream to check if the C++ compiler works +AC_CHECK_HEADER(iostream, , AC_MSG_ERROR([No working c++ compiler found])) + +dnl TODO: Use ../../lib/include instead of .../tnt once all other +dnl libraries have been moved out of SVN +TNT_CPPFLAGS="-I../../lib/include/tnt -DJAMA_NO_SUBDIR" +CPPFLAGS="$CPPFLAGS $TNT_CPPFLAGS" +AC_CHECK_HEADER(tnt.h, HAVETNT=yes, HAVETNT=no) +AC_CHECK_HEADER(jama_lu.h, HAVEJAMA=yes, HAVEJAMA=no) + +if test x$HAVETNT = xno -o x$HAVEJAMA = xno; then + AC_MSG_ERROR([tnt or jama not found]) +fi +AC_SUBST(TNT_CPPFLAGS) + + + +# boost-unit-test-framework + +AC_MSG_CHECKING([for boost-unit-test-framework]) + +ASTRA_CHECK_BOOST_UNIT_TEST_FRAMEWORK(-lboost_unit_test_framework-mt, BOOSTUTF=yes_mt, BOOSTUTF=no) +if test x$BOOSTUTF = xno; then + ASTRA_CHECK_BOOST_UNIT_TEST_FRAMEWORK(-lboost_unit_test_framework, BOOSTUTF=yes, BOOSTUTF=no) + if test x$BOOSTTHREAD = xno; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([No boost-unit-test-framework library found]) + else + AC_MSG_RESULT([yes, libboost_unit_test_framework]) + LIBS_BOOSTUTF="-lboost_unit_test_framework" + fi +else + AC_MSG_RESULT([yes, libboost_unit_test_framework-mt]) + LIBS_BOOSTUTF="-lboost_unit_test_framework-mt" +fi +# TODO: do something with the result + + +# nvcc, cuda + +AC_ARG_WITH(cuda, [[ --with-cuda=path path of CUDA SDK (optional)]],,) + +NVCC_PATH=$PATH +if test x"$with_cuda" != x; then + NVCC_PATH="$with_cuda/bin:$NVCC_PATH" +fi +AC_PATH_PROG([NVCC], [nvcc], [no], [$NVCC_PATH]) +# TODO: do something with the result + +HAVECUDA=no +if test x"$NVCC" != xno; then + HAVECUDA=yes + BACKUP_CUDA_LDFLAGS="$LDFLAGS" + if test x"$with_cuda" != x; then + LDFLAGS_CUDA="-L$with_cuda/lib" + CPPFLAGS_CUDA="-I$with_cuda/include" + LDFLAGS="$LDFLAGS $LDFLAGS_CUDA" + fi + AC_CHECK_LIB(cudart,cudaMalloc, ,HAVECUDA=no) + AC_CHECK_LIB(cufft,cufftPlan1d, ,HAVECUDA=no) + + if test x"$HAVECUDA" = xno; then + # try lib64 instead of lib + + HAVECUDA=yes + LDFLAGS="$BACKUP_CUDA_LDFLAGS" + + # prevent cached values from being used + unset ac_cv_lib_cudart_cudaMalloc + unset ac_cv_lib_cufft_cufftPlan1d + + LDFLAGS_CUDA="-L$with_cuda/lib64" + LDFLAGS="$LDFLAGS $LDFLAGS_CUDA" + AC_CHECK_LIB(cudart,cudaMalloc, ,HAVECUDA=no) + AC_CHECK_LIB(cufft,cufftPlan1d, ,HAVECUDA=no) + fi + + LDFLAGS="$BACKUP_CUDA_LDFLAGS" + unset BACKUP_CUDA_LDFLAGS + # TODO: check for cuda headers? + + AC_SUBST(NVCC) +fi + +NVCCFLAGS="" +AC_MSG_CHECKING([if nvcc works]) +if test x"$HAVECUDA" = xyes; then + ASTRA_CHECK_NVCC(HAVECUDA,NVCCFLAGS) +fi +AC_MSG_RESULT($HAVECUDA) +AC_SUBST(HAVECUDA) +AC_SUBST(LDFLAGS_CUDA) +AC_SUBST(CPPFLAGS_CUDA) +AC_SUBST(NVCCFLAGS) + + +# mex, matlab + +AC_ARG_WITH(matlab, [[ --with-matlab=path path of Matlab (optional)]],,) + +MEX_PATH=$PATH +HAVEMATLAB=no +if test x"$with_matlab" != x; then + MEX_PATH="$with_matlab/bin:$MEX_PATH" + AC_PATH_PROG([MEX], [mex], [no], [$MEX_PATH]) + if test x"$MEX" != xno; then + HAVEMATLAB=yes + # TODO: check platform of C compiler is same as mex + AC_SUBST(MEX) + MATLAB_ROOT="$with_matlab" + AC_SUBST(MATLAB_ROOT) + + ASTRA_CHECK_MEX_SUFFIX([mexa64 mexglx mexmaci64 mexmaci],[MEXSUFFIX]) + if test x$MEXSUFFIX = x; then + AC_MSG_FAILURE([Unable to determine matlab mex suffix]) + HAVEMATLAB=no + fi + AC_SUBST(MEXSUFFIX) + fi +fi + +AC_SUBST(HAVEMATLAB) + + +# TODO: + +# Detection of tools: +# libtool (how?) + +# options: +# debugging/optimization/profiling flags + + +AC_SUBST(SAVED_CPPFLAGS) +AC_SUBST(SAVED_CXXFLAGS) +AC_SUBST(SAVED_LDFLAGS) + + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT |