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

alberta-check.m4

Blame
  • alberta-check.m4 4.73 KiB
    dnl
    dnl Define this outside ALBERTA_CHECK() so that it can be AC_REQUIRE'd
    dnl
    AC_DEFUN([ALBERTA_OPTIONS],
    [
    AC_ARG_ENABLE(el_index,
    [  --enable-el_index       use an EL_INDEX enabled version of the ALBERTA
                                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 ALBERTA libraries (default: off)],
    [ALBERTA_DEBUG=1],
    ALBERTA_DEBUG=0)
    AC_SUBST([ALBERTA_DEBUG])
    ])
    
    dnl
    dnl check for possiby needed packages, DEFUN for AC_REQUIRE
    dnl
    AC_DEFUN([ALBERTA_AUX_CHECK],
    [AC_REQUIRE([AC_PATH_X])
    AC_REQUIRE([AC_PATH_XTRA])
    ALBERTA_CHECK_PACKAGE(OpenGL, GL, ${x_libraries}, ${X_LIBS} -lX11,
                         gl.h, ${x_includes}/GL , optional)
    ALBERTA_CHECK_PACKAGE(PLOT, PLOTansi, $ALBERTA_LIB_PATH, $OpenGL_LIB,
                         PLOTansi.h, $ALBERTA_INCLUDE_PATH, optional)
    ALBERTA_CHECK_PACKAGE(gltools,  gltools,, $OpenGL_LIB,
                         glwin.h,, 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)
    ALBERTA_CHECK_PACKAGE(alberta_util, alberta_util, $ALBERTA_LIB_PATH, -lm,
                         alberta_util.h, $ALBERTA_INCLUDE_PATH, required)
    ALBERTA_CHECK_PACKAGE(csolver, csolver, $ALBERTA_LIB_PATH,
                         ${FLIBS} -lalberta_util -lm,
                         oem.h, $ALBERTA_INCLUDE_PATH, required)
    ])
    
    dnl
    dnl Check for ALBERTA libraries at given dimensions, taking ELINDEX and DEBUG
    dnl into account. $1 is DIM, $2 ist DIM_OF_WORLD
    dnl
    AC_DEFUN([ALBERTA_CHECK],
    [AC_REQUIRE([ALBERTA_TYPE_SIZES])
    AC_REQUIRE([ALBERTA_OPTIONS])
    AC_REQUIRE([AC_SET_PREFIX])
    dnl
    dnl library location
    dnl
    AC_ARG_WITH(alberta-libs,
    [  --with-alberta-libs=LOCATION  use ALBERTA libraries installed below LOCATION.
                              The library is expected under "LOCATION/".
                              Default is the value of the environment variable
                              ALBERTA_LIB_PATH, if set, otherwise 'PREFIX/lib'],
    [case "$withval" in
            yes|no)
                    ;;
            *)      ALBERTA_LIB_PATH=${withval}
                    ;;
    esac],
    [if test "x$ALBERTA_LIB_PATH" = "x" ; then
            ALBERTA_LIB_PATH=`eval eval echo ${libdir}`
    fi])
    AC_SUBST(ALBERTA_LIB_PATH)
    dnl
    dnl next for headers
    dnl
    AC_ARG_WITH(alberta-includes,
    [  --with-alberta-includes=LOCATION  use ALBERTA includes installed below
                              LOCATION. Default is the value of the environment
                              variable ALBERTA_INCLUDE_PATH, if set, otherwise
                              'PREFIX/include'],
    [case "$withval" in
            yes|no)
                    ;;
            *)      ALBERTA_INCLUDE_PATH=${withval}
                    ;;
    esac],
    [if test "x$ALBERTA_INCLUDE_PATH" = "x" ; then
            ALBERTA_INCLUDE_PATH=`eval eval echo ${includedir}`
    fi])
    AC_SUBST(ALBERTA_INCLUDE_PATH)
    dnl
    dnl Now check for the library. Take into account that we might need
    dnl gltools and PLOTansi
    dnl
    AC_REQUIRE([ALBERTA_AUX_CHECK])
    dnl
    dnl Now check for libALBERTA_XXX itself
    dnl
    ALBERTA_LIB_$1$2=ALBERTA$1$2_${ALBERTA_DEBUG}${ELINDEX}
    ALBERTA_LIB_$1$2_C=ac_cv_lib_ALBERTA$1$2_${ALBERTA_DEBUG}${ELINDEX}
    AC_CACHE_CHECK([for additional libraries needed to link],
    	[ac_cv_libalberta$1$2_gfxlibs],
    	[ac_cv_libalberta$1$2_gfxlibs=unset
    	for GFX_LIBS in	"" \
    			"$OpenGL_LIB ${X_LIBS} -lX11" \
    			"$gltools_LIB $OpenGL_LIB ${X_LIBS} -lX11" \
    			"$PLOT_LIB $OpenGL_LIB ${X_LIBS} -lX11" \
    			"$gltools_LIB $PLOT_LIB $OpenGL_LIB ${X_LIBS} -lX11"
    	do
    	  eval "unset ${ALBERTA_LIB_$1$2_C}___main"
    	  AC_CHECK_LIB($ALBERTA_LIB_$1$2, main,
    	  [ac_cv_libalberta$1$2_gfxlibs="$GFX_LIBS"
    	  break],,
    	  [$csolver_LIB $GFX_LIBS])
    	done])
    
    if test "$ac_cv_libalberta$1$2_gfxlibs" = unset; then
    	AC_MSG_ERROR([Unable to link a program with lib$ALBERTA_LIB_$1$2!])
    else
    	ALBERTA_LIBS_$1$2="-L$ALBERTA_LIB_PATH -l$ALBERTA_LIB_$1$2 $csolver_LIB $ac_cv_libalberta$1$2_gfxlibs"
    fi
    AC_SUBST([ALBERTA_LIBS_$1$2])
    dnl
    dnl search for alberta.h header
    dnl
    AC_CACHE_CHECK(
    	[whether alberta.h exist and works with DIM=$1 and DIM_OF_WORLD=$2],
    	[ac_cv_header_alberta$1$2_h],
    	[ac_alberta_save_CPPFLAGS="$CPPFLAGS"
    	unset ac_cv_header_alberta_h
    	CPPFLAGS="-DDIM=$1 -DDIM_OF_WORLD=$2 -DEL_INDEX=${ELINDEX:-0} -I$ALBERTA_INCLUDE_PATH $CPPFLAGS"
    	AC_CHECK_HEADERS(alberta.h,
    		[unset ac_cv_header_alberta_h
    		ac_cv_header_alberta$1$2_h=yes],
    		[ac_cv_header_alberta$1$2_h=no
    		AC_MSG_ERROR([Header file "alberta.h" not found])])
    	CPPFLAGS="$ac_alberta_save_CPPFLAGS"
    	])
    	if test $ac_cv_header_alberta$1$2_h = yes; then
    		AC_DEFINE([HAVE_ALBERTA$1$2_H], 1,
    			[Define if "alberta.h" works with DIM=$1 and DIM_OF_WORLD=$2.])
    	fi
    ])