dnl @synopsis ACX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])dnldnl This macro looks for a library that implements the BLASdnl linear-algebra interface (see http://www.netlib.org/blas/). Ondnl success, it sets the BLAS_LIBS output variable to hold thednl requisite library linkages.dnldnl To link with BLAS, you should link with:dnldnl $BLAS_LIBS $LIBS $FLIBSdnldnl in that order. FLIBS is the output variable of thednl AC_F77_LIBRARY_LDFLAGS macro (called if necessary by ACX_BLAS), anddnl is sometimes necessary in order to link with F77 libraries. Usersdnl will also need to use AC_F77_DUMMY_MAIN (see the autoconf manual),dnl for the same reason.dnldnl Many libraries are searched for, from ATLAS to CXML to ESSL. Thednl user may also use --with-blas=<lib> in order to use some specificdnl BLAS library <lib>. In order to link successfully, however, bednl aware that you will probably need to use the same Fortran compilerdnl (which can be set via the F77 env. var.) as was used to compile thednl BLAS library.dnldnl ACTION-IF-FOUND is a list of shell commands to run if a BLASdnl library is found, and ACTION-IF-NOT-FOUND is a list of commands todnl run it if it is not found. If ACTION-IF-FOUND is not specified, thednl default action will define HAVE_BLAS.dnldnl This macro requires autoconf 2.50 or later.dnldnl @category InstalledPackagesdnl @author Steven G. Johnson <stevenj@alum.mit.edu>dnl @version 2001-12-13dnl @license GPLWithACExceptionAC_DEFUN([ACX_BLAS], [AC_PREREQ(2.50)AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])acx_blas_ok=noAC_ARG_WITH(blas,[AC_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])case $with_blas inyes | "") ;;no) acx_blas_ok=disable ;;-* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;;*) BLAS_LIBS="-l$with_blas" ;;esac# Get fortran linker names of BLAS functions to check for.AC_F77_FUNC(sgemm)AC_F77_FUNC(dgemm)acx_blas_save_LIBS="$LIBS"LIBS="$LIBS $FLIBS"# First, check BLAS_LIBS environment variableif test $acx_blas_ok = no; thenif test "x$BLAS_LIBS" != x; thensave_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS"AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS])AC_TRY_LINK_FUNC($sgemm, [acx_blas_ok=yes], [BLAS_LIBS=""])AC_MSG_RESULT($acx_blas_ok)LIBS="$save_LIBS"fifi# BLAS linked to by default? (happens on some supercomputers)if test $acx_blas_ok = no; thensave_LIBS="$LIBS"; LIBS="$LIBS"AC_CHECK_FUNC($sgemm, [acx_blas_ok=yes])LIBS="$save_LIBS"fi# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)if test $acx_blas_ok = no; thenAC_CHECK_LIB(atlas, ATL_xerbla,[AC_CHECK_LIB(f77blas, $sgemm,[AC_CHECK_LIB(cblas, cblas_dgemm,[acx_blas_ok=yesBLAS_LIBS="-lcblas -lf77blas -latlas"],[], [-lf77blas -latlas])],[], [-latlas])])fi# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)if test $acx_blas_ok = no; thenAC_CHECK_LIB(blas, $sgemm,[AC_CHECK_LIB(dgemm, $dgemm,[AC_CHECK_LIB(sgemm, $sgemm,[acx_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"],[], [-lblas])],[], [-lblas])])fi# BLAS in Alpha CXML library?if test $acx_blas_ok = no; thenAC_CHECK_LIB(cxml, $sgemm, [acx_blas_ok=yes;BLAS_LIBS="-lcxml"])fi# BLAS in Alpha DXML library? (now called CXML, see above)if test $acx_blas_ok = no; thenAC_CHECK_LIB(dxml, $sgemm, [acx_blas_ok=yes;BLAS_LIBS="-ldxml"])fi# BLAS in Sun Performance library?if test $acx_blas_ok = no; thenif test "x$GCC" != xyes; then # only works with Sun CCAC_CHECK_LIB(sunmath, acosp,[AC_CHECK_LIB(sunperf, $sgemm,[BLAS_LIBS="-xlic_lib=sunperf -lsunmath"acx_blas_ok=yes],[],[-lsunmath])])fifi# BLAS in SCSL library? (SGI/Cray Scientific Library)if test $acx_blas_ok = no; thenAC_CHECK_LIB(scs, $sgemm, [acx_blas_ok=yes; BLAS_LIBS="-lscs"])fi# BLAS in SGIMATH library?if test $acx_blas_ok = no; thenAC_CHECK_LIB(complib.sgimath, $sgemm,[acx_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"])fi# BLAS in IBM ESSL library? (requires generic BLAS lib, too)if test $acx_blas_ok = no; thenAC_CHECK_LIB(blas, $sgemm,[AC_CHECK_LIB(essl, $sgemm,[acx_blas_ok=yes; BLAS_LIBS="-lessl -lblas"],[], [-lblas $FLIBS])])fi# Generic BLAS library?if test $acx_blas_ok = no; thenAC_CHECK_LIB(blas, $sgemm, [acx_blas_ok=yes; BLAS_LIBS="-lblas"])fiAC_SUBST(BLAS_LIBS)LIBS="$acx_blas_save_LIBS"# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:if test x"$acx_blas_ok" = xyes; thenifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]):elseacx_blas_ok=no$2fi])dnl ACX_BLAS