diff --git a/m4/albert-check.m4 b/m4/albert-check.m4 index b5b9c9694b9888883db02e2543b614a39574def6..246c668c2e4514b335fa33721ece117e59dc7945 100644 --- a/m4/albert-check.m4 +++ b/m4/albert-check.m4 @@ -86,47 +86,25 @@ 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} -ALBERT_GFX_LIBS_$1$2="" -AC_CHECK_LIB($ALBERT_LIB_$1$2, main, - [ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB"],, - $csolver_LIB) -if test "x$ALBERT_LIBS_$1$2" = "x" ; then - if test "x$OpenGL_LIB" = "x" ; then :; else - AC_MSG_NOTICE([Trying again with OpenGL]) - ALBERT_GFX_LIBS_$1$2="$OpenGL_LIB ${X_LIB} -lX11" - eval "unset ${ALBERT_LIB_$1$2_C}___main" - AC_CHECK_LIB($ALBERT_LIB_$1$2, main, - [ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB"],, - $csolver_LIB $ALBERT_GFX_LIBS_$1$2) - if test "x$ALBERT_LIBS_$1$2" = "x" && \ - test "x$gltools_LIB" != "x" ; then - AC_MSG_NOTICE([Trying again with gltools]) - eval "unset ${ALBERT_LIB_$1$2_C}___main" - ALBERT_GFX_LIBS_$1$2="$gltools_LIB $OpenGL_LIB ${X_LIB} -lX11" - AC_CHECK_LIB($ALBERT_LIB_$1$2, main, - [ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB"],, - $csolver_LIB $ALBERT_GFX_LIBS_$1$2) - fi - if test "x$ALBERT_LIBS_$1$2" = "x" && \ - test "x$PLOT_LIB" != "x" ; then - AC_MSG_NOTICE([Trying again with PLOTansi]) - eval "unset ${ALBERT_LIB_$1$2_C}___main" - ALBERT_GFX_LIBS_$1$2="$PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11" - AC_CHECK_LIB($ALBERT_LIB_$1$2, main, - [ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB"],, - $csolver_LIB $ALBERT_GFX_LIBS_$1$2) - fi - if test "x$ALBERT_LIBS_$1$2" = "x" && \ - test "x$PLOT_LIB" != "x" && \ - test "x$gltools_LIB" != "x" ; then - AC_MSG_NOTICE([Trying again with PLOTansi AND gltools]) - eval "unset ${ALBERT_LIB_$1$2_C}___main" - ALBERT_GFX_LIBS_$1$2="$gltools_LIB $PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11" - AC_CHECK_LIB($ALBERT_LIB_$1$2, main, - [ALBERT_LIBS_$1$2="-L$ALBERT_LIB_PATH -l$ALBERT_LIB_$1$2 $csolver_LIB"],, - $csolver_LIB $ALBERT_GFX_LIBS_$1$2) - fi - fi +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