diff --git a/m4/alberta-check.m4 b/m4/alberta-check.m4 index dd7e2bd8dbe925b7086294befa3702678e61e23b..0cdfd0a25559f776742678a26a0e5b237b34fea6 100644 --- a/m4/alberta-check.m4 +++ b/m4/alberta-check.m4 @@ -1,3 +1,159 @@ +dnl +dnl Check for ALBERTA libraries at given dimensions, taking EL_INDEX and DEBUG +dnl into account. $1 is dimension, $2 is DIM_OF_WORLD. +dnl +dnl old style (ALBERTA-1.2) +dnl +dnl ALBERTA_CHECK(DIM, DIM_OF_WORLD) +dnl +dnl New style: library name is +dnl +dnl libALBERTA<DIM><DOW>_<DEBUG>[EL_INDEX] +dnl +dnl EL_INDEX is present ONLY if it is non-zero +dnl +dnl +dnl +dnl new style (DIM is variable) +dnl +dnl ALBERTA_CHECK(DIM_OF_WORLD) +dnl +dnl New style: library name is +dnl +dnl libALBERTA<DOW>_<DEBUG><EL_INDEX> +dnl + +dnl +dnl Check for ALBERTA libraries at given dimensions, taking EL_INDEX and DEBUG +dnl into account. $1 is dimension, $2 is DIM_OF_WORLD. +dnl +AC_DEFUN([ALBERTA_CHECK], +[AC_REQUIRE([ALBERTA_TYPE_SIZES]) +AC_REQUIRE([ALBERTA_OPTIONS]) +AC_REQUIRE([AC_SET_PREFIX]) +AC_REQUIRE([ALBERTA_AUX_CHECK]) +# +# Now check for libALBERTA_XXX itself +# +# BIG FAT NOTE: +# +m4_if($#,1,[ALBERTA_CHECK_NEWLIBS($1)],[ALBERTA_CHECK_OLDLIBS($1,$2)]) +]) + +dnl +dnl New-style, only DIM_OF_WORLD is fixed. +dnl +dnl DIM_OF_WORLD is passed in $1 +dnl +AC_DEFUN([ALBERTA_CHECK_NEWLIBS], +[ +ALBERTA_LIB_$1=ALBERTA$1_${ALBERTA_DEBUG}${EL_INDEX} +ALBERTA_LIB_$1_C=ac_cv_lib_ALBERTA$1_${ALBERTA_DEBUG}${EL_INDEX} +# +AC_CACHE_CHECK([for additional libraries needed to link], + [ac_cv_libalberta$1_gfxlibs], + [ac_cv_libalberta$1_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_C}___main" + AC_CHECK_LIB($ALBERTA_LIB_$1, main, + [ac_cv_libalberta$1_gfxlibs="$GFX_LIBS" + break],, + [$CSOLVER_ALL_LIB $GFX_LIBS]) + done]) + +if test "$ac_cv_libalberta$1_gfxlibs" = unset; then + AC_MSG_ERROR([Unable to link a program with lib$ALBERTA_LIB_$1!]) +else + ALBERTA_LIBS_$1="-L$ALBERTA_LIB_PATH -l$ALBERTA_LIB_$1 $CSOLVER_ALL_LIB $ac_cv_libalberta$1_gfxlibs" +fi +AC_SUBST([ALBERTA_LIBS_$1]) +dnl +dnl search for alberta.h header +dnl +AC_CACHE_CHECK( + [whether alberta.h exist and works with DIM_OF_WORLD=$1], + [ac_cv_header_alberta$1_h], + [ac_alberta_save_CPPFLAGS="$CPPFLAGS" + unset ac_cv_header_alberta_h + CPPFLAGS="-DDIM_OF_WORLD=$1 -DEL_INDEX=${EL_INDEX} -I$ALBERTA_INCLUDE_PATH $CPPFLAGS" + AC_CHECK_HEADERS(alberta.h, + [unset ac_cv_header_alberta_h + ac_cv_header_alberta$1_h=yes], + [ac_cv_header_alberta$1_h=no + AC_MSG_ERROR([Header file "alberta.h" not found])]) + CPPFLAGS="$ac_alberta_save_CPPFLAGS" + ]) + if test $ac_cv_header_alberta$1_h = yes; then + AC_DEFINE([HAVE_ALBERTA$1_H], 1, + [Define if "alberta.h" works with DIM_OF_WORLD=$1.]) + fi +]) + +dnl +dnl Old-style, DIM _and_ DIM_OF_WORLD is fixed. +dnl +dnl DIM is passed in $1 +dnl DIM_OF_WORLD is passed in $2 +dnl +AC_DEFUN([ALBERTA_CHECK_OLDLIBS], +[ +if test "${EL_INDEX}" = "0"; then + ALBERTA_LIB_$1$2=ALBERTA$1$2_${ALBERTA_DEBUG} + ALBERTA_LIB_$1$2_C=ac_cv_lib_ALBERTA$1$2_${ALBERTA_DEBUG} +else + ALBERTA_LIB_$1$2=ALBERTA$1$2_${ALBERTA_DEBUG}${EL_INDEX} + ALBERTA_LIB_$1$2_C=ac_cv_lib_ALBERTA$1$2_${ALBERTA_DEBUG}${EL_INDEX} +fi +# +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_ALL_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_ALL_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, 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=${EL_INDEX} -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 +]) + dnl dnl Define this outside ALBERTA_CHECK() so that it can be AC_REQUIRE'd dnl @@ -23,33 +179,6 @@ 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 EL_INDEX and DEBUG -dnl into account. $1 is dimension, $2 is 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 @@ -87,55 +216,27 @@ esac], 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 Now check for the libraries ALBERTA might depend on. Take into +dnl account that we might need gltools and PLOTansi and OpenGL dnl -dnl Now check for libALBERTA_XXX itself -dnl -ALBERTA_LIB_$1=ALBERTA$1_${ALBERTA_DEBUG}${EL_INDEX} -ALBERTA_LIB_$1_C=ac_cv_lib_ALBERTA$1_${ALBERTA_DEBUG}${EL_INDEX} -AC_CACHE_CHECK([for additional libraries needed to link], - [ac_cv_libalberta$1_gfxlibs], - [ac_cv_libalberta$1_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_C}___main" - AC_CHECK_LIB($ALBERTA_LIB_$1, main, - [ac_cv_libalberta$1_gfxlibs="$GFX_LIBS" - break],, - [$csolver_LIB $GFX_LIBS]) - done]) - -if test "$ac_cv_libalberta$1_gfxlibs" = unset; then - AC_MSG_ERROR([Unable to link a program with lib$ALBERTA_LIB_$1!]) -else - ALBERTA_LIBS_$1="-L$ALBERTA_LIB_PATH -l$ALBERTA_LIB_$1 $csolver_LIB $ac_cv_libalberta$1_gfxlibs" -fi -AC_SUBST([ALBERTA_LIBS_$1]) -dnl -dnl search for alberta.h header -dnl -AC_CACHE_CHECK( - [whether alberta.h exist and works with DIM_OF_WORLD=$2], - [ac_cv_header_alberta$2_h], - [ac_alberta_save_CPPFLAGS="$CPPFLAGS" - unset ac_cv_header_alberta_h - CPPFLAGS="-DDIM_OF_WORLD=$2 -DEL_INDEX=${EL_INDEX} -I$ALBERTA_INCLUDE_PATH $CPPFLAGS" - AC_CHECK_HEADERS(alberta.h, - [unset ac_cv_header_alberta_h - ac_cv_header_alberta$2_h=yes], - [ac_cv_header_alberta$2_h=no - AC_MSG_ERROR([Header file "alberta.h" not found])]) - CPPFLAGS="$ac_alberta_save_CPPFLAGS" - ]) - if test $ac_cv_header_alberta$2_h = yes; then - AC_DEFINE([HAVE_ALBERTA$2_H], 1, - [Define if "alberta.h" works with DIM_OF_WORLD=$2.]) - fi +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) +# Cache check-point +AC_CACHE_SAVE +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) ]) +