Skip to content
Snippets Groups Projects
Select Git revision
  • 216a3853eb72bffd731419bf5a5444617e462df3
  • master default protected
  • releases
  • releases/3.0.3
4 results

albert-check.m4

Blame
  • user avatar
    Claus-Justus Heine authored
    216a3853
    History
    albert-check.m4 4.46 KiB
    AC_DEFUN([ALBERT_OPTIONS],
    [
    AC_ARG_ENABLE(el_index,
    [  --enable-el_index       use an EL_INDEX enabled version of the ALBERT
                                libraries (default is off)],
    [ELINDEX=1],
    ELINDEX=)
    EL_INDEX=${ELINDEX:-0}
    AC_SUBST([EL_INDEX])
    dnl
    AC_ARG_ENABLE(debug,
    [  --enable-debug          use debug-enabled ALBERT libraries (default: off)],
    [ALBERT_DEBUG=1],
    ALBERT_DEBUG=0)
    ])
    AC_SUBST([ALBERT_DEBUG])
    dnl
    dnl Check for ALBERT libraries at given dimensions, taking ELINDEX and DEBUG
    dnl into account. $1 is DIM, $2 ist DIM_OF_WORLD
    dnl
    AC_DEFUN([ALBERT_CHECK],
    [AC_REQUIRE([ALBERT_TYPE_SIZES])
    AC_REQUIRE([ALBERT_OPTIONS])
    AC_REQUIRE([AC_SET_PREFIX])
    dnl
    dnl library location
    dnl
    AC_ARG_WITH(albert-libs,
    [  --with-albert-libs=LOCATION  use ALBERT libraries installed below LOCATION.
                              The library is expected under "LOCATION/".
                              Default is the value of the environment variable
                              ALBERT_LIB_PATH, if set, otherwise 'PREFIX/lib'],
    [case "$withval" in
            yes|no)
                    ;;
            *)      ALBERT_LIB_PATH=${withval}
                    ;;
    esac],
    [if test "x$ALBERT_LIB_PATH" = "x" ; then
            ALBERT_LIB_PATH=`eval eval echo ${libdir}`
    fi])
    AC_SUBST(ALBERT_LIB_PATH)
    dnl
    dnl next for headers
    dnl
    AC_ARG_WITH(albert-includes,
    [  --with-albert-includes=LOCATION  use ALBERT includes installed below
                              LOCATION. Default is the value of the environment
                              variable ALBERT_INCLUDE_PATH, if set, otherwise
                              'PREFIX/include'],
    [case "$withval" in
            yes|no)
                    ;;
            *)      ALBERT_INCLUDE_PATH=${withval}
                    ;;
    esac],
    [if test "x$ALBERT_INCLUDE_PATH" = "x" ; then
            ALBERT_INCLUDE_PATH=`eval eval echo ${includedir}`
    fi])
    AC_SUBST(ALBERT_INCLUDE_PATH)
    dnl
    dnl Now check for the library. Take into account that we might need
    dnl gltools and PLOTansi
    dnl
    if test "x$_ALBERT_AUX_LIBS_CHECKED_" = "x" ; then
      AC_CHECK_PKG(OpenGL, GL, /usr/X11R6/lib, ${X_LIBS} -lX11,
                   gl.h, /usr/X11R6/include/GL, optional)
      AC_CHECK_PKG(PLOT, PLOTansi, $ALBERT_LIB_PATH, $OpenGL_LIB,
                   PLOTansi.h, $ALBERT_INCLUDE_PATH, optional)
      AC_CHECK_PKG(gltools,  gltools, `pwd`/../gltools-2-4, $OpenGL_LIB,
                   glwin.h,`pwd`/../gltools-2-4, optional)
      AC_LANG_PUSH(Fortran 77)
      AC_CHECK_LIB(blas, dnrm2,
                   [FLIBS="-lblas ${FLIBS}"
                    AC_DEFINE(HAVE_LIBBLAS, 1, [Define to 1 if you have libblas])],
                   [AC_MSG_ERROR([Required BLAS library was not found])])
      AC_LANG_POP(Fortran 77)
      AC_CHECK_PKG(albert_util, albert_util, $ALBERT_LIB_PATH, -lm,
                   albert_util.h, $ALBERT_INCLUDE_PATH, required)
      AC_CHECK_PKG(csolver, csolver, $ALBERT_LIB_PATH, ${FLIBS} -lalbert_util -lm,
                   oem.h, $ALBERT_INCLUDE_PATH, required)
      _ALBERT_AUX_LIBS_CHECKED_=checked
    fi
    dnl
    dnl Now check for libALBERT_XXX itself
    dnl
    ALBERT_LIB_$1$2=ALBERT$1$2_${ALBERT_DEBUG}${ELINDEX}
    ALBERT_LIB_$1$2_C=ac_cv_lib_ALBERT$1$2_${ALBERT_DEBUG}${ELINDEX}
    AC_CACHE_CHECK([for additional libraries needed to link],
    	[ac_cv_libalbert$1$2_gfxlibs],
    	[ac_cv_libalbert$1$2_gfxlibs=unset
    	for GFX_LIBS in	"" \
    			"$OpenGL_LIB ${X_LIB} -lX11" \
    			"$gltools_LIB $OpenGL_LIB ${X_LIB} -lX11" \
    			"$PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11" \
    			"$gltools_LIB $PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11"; do
    	  eval "unset ${ALBERT_LIB_$1$2_C}___main"
    	  AC_CHECK_LIB($ALBERT_LIB_$1$2, main,
    	  [ac_cv_libalbert$1$2_gfxlibs="$GFX_LIBS"
    	  break],,
    	  [$csolver_LIB $GFX_LIBS])
    	done])
    
    if test "$ac_cv_libalbert$1$2_gfxlibs" = unset; then
    	AC_MSG_ERROR([Unable to link a program with lib$ALBERT_LIB_$1$2!])
    else
    	ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB $ac_cv_libalbert$1$2_gfxlibs"
    fi
    AC_SUBST([ALBERT_LIBS_$1$2])
    dnl
    dnl search for albert.h header
    dnl
    AC_CACHE_CHECK(
    	[whether albert.h exist and works with DIM=$1 and DIM_OF_WORLD=$2],
    	[ac_cv_header_albert$1$2_h],
    	[ac_albert_save_CPPFLAGS="$CPPFLAGS"
    	unset ac_cv_header_albert_h
    	CPPFLAGS="-DDIM=$1 -DDIM_OF_WORLD=$2 -DEL_INDEX=${ELINDEX:-0} -I$ALBERT_INCLUDE_PATH $CPPFLAGS"
    	AC_CHECK_HEADERS(albert.h,
    		[unset ac_cv_header_albert_h
    		ac_cv_header_albert$1$2_h=yes],
    		[ac_cv_header_albert$1$2_h=no
    		AC_MSG_ERROR([Header file "albert.h" not found])])
    	CPPFLAGS="$ac_albert_save_CPPFLAGS"
    	])
    	if test $ac_cv_header_albert$1$2_h = yes; then
    		AC_DEFINE([HAVE_ALBERT$1$2_H], 1,
    			[Define if "albert.h" works with DIM=$1 and DIM_OF_WORLD=$2.])
    	fi
    ])