Select Git revision
alberta-check.m4
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
])