source: ThirdParty/vmg/m4/ax_blas.m4@ 6491d3

Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.1 ChemicalSpaceEvaluator Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Exclude_Hydrogens_annealWithBondGraph ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_contraction-expansion Gui_displays_atomic_force_velocity JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool PythonUI_with_named_parameters StoppableMakroAction TremoloParser_IncreasedPrecision
Last change on this file since 6491d3 was 7faa5c, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit 'de061d9d851257a04e924d4472df4523d33bb08b' as 'ThirdParty/vmg'

  • Property mode set to 100644
File size: 6.6 KB
Line 
1# ===========================================================================
2# http://www.gnu.org/software/autoconf-archive/ax_blas.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7# AX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
8#
9# DESCRIPTION
10#
11# This macro looks for a library that implements the BLAS linear-algebra
12# interface (see http://www.netlib.org/blas/). On success, it sets the
13# BLAS_LIBS output variable to hold the requisite library linkages.
14#
15# To link with BLAS, you should link with:
16#
17# $BLAS_LIBS $LIBS $FCLIBS
18#
19# in that order. FCLIBS is the output variable of the
20# AC_FC_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is
21# sometimes necessary in order to link with FC libraries. Users will also
22# need to use AC_FC_DUMMY_MAIN (see the autoconf manual), for the same
23# reason.
24#
25# Many libraries are searched for, from ATLAS to CXML to ESSL. The user
26# may also use --with-blas=<lib> in order to use some specific BLAS
27# library <lib>. In order to link successfully, however, be aware that you
28# will probably need to use the same Fortran compiler (which can be set
29# via the FC env. var.) as was used to compile the BLAS library.
30#
31# ACTION-IF-FOUND is a list of shell commands to run if a BLAS library is
32# found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is
33# not found. If ACTION-IF-FOUND is not specified, the default action will
34# define HAVE_BLAS.
35#
36# LICENSE
37#
38# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
39#
40# This program is free software: you can redistribute it and/or modify it
41# under the terms of the GNU General Public License as published by the
42# Free Software Foundation, either version 3 of the License, or (at your
43# option) any later version.
44#
45# This program is distributed in the hope that it will be useful, but
46# WITHOUT ANY WARRANTY; without even the implied warranty of
47# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
48# Public License for more details.
49#
50# You should have received a copy of the GNU General Public License along
51# with this program. If not, see <http://www.gnu.org/licenses/>.
52#
53# As a special exception, the respective Autoconf Macro's copyright owner
54# gives unlimited permission to copy, distribute and modify the configure
55# scripts that are the output of Autoconf when processing the Macro. You
56# need not follow the terms of the GNU General Public License when using
57# or distributing such scripts, even though portions of the text of the
58# Macro appear in them. The GNU General Public License (GPL) does govern
59# all other use of the material that constitutes the Autoconf Macro.
60#
61# This special exception to the GPL applies to versions of the Autoconf
62# Macro released by the Autoconf Archive. When you make and distribute a
63# modified version of the Autoconf Macro, you may extend this special
64# exception to the GPL to apply to your modified version as well.
65
66#serial 11
67
68AU_ALIAS([ACX_BLAS], [AX_BLAS])
69AC_DEFUN([AX_BLAS], [
70AC_PREREQ(2.50)
71AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])
72ax_blas_ok=no
73
74AC_ARG_WITH(blas,
75 [AS_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])
76case $with_blas in
77 yes | "") ;;
78 no) ax_blas_ok=disable ;;
79 -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;;
80 *) BLAS_LIBS="-l$with_blas" ;;
81esac
82
83# Get fortran linker names of BLAS functions to check for.
84AC_FC_FUNC(sgemm)
85AC_FC_FUNC(dgemm)
86
87ax_blas_save_LIBS="$LIBS"
88LIBS="$LIBS $FCLIBS"
89
90# First, check BLAS_LIBS environment variable
91if test $ax_blas_ok = no; then
92if test "x$BLAS_LIBS" != x; then
93 save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS"
94 AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS])
95 AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes], [BLAS_LIBS=""])
96 AC_MSG_RESULT($ax_blas_ok)
97 LIBS="$save_LIBS"
98fi
99fi
100
101# BLAS linked to by default? (happens on some supercomputers)
102if test $ax_blas_ok = no; then
103 save_LIBS="$LIBS"; LIBS="$LIBS"
104 AC_MSG_CHECKING([if $sgemm is being linked in already])
105 AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes])
106 AC_MSG_RESULT($ax_blas_ok)
107 LIBS="$save_LIBS"
108fi
109
110# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
111if test $ax_blas_ok = no; then
112 AC_CHECK_LIB(atlas, ATL_xerbla,
113 [AC_CHECK_LIB(f77blas, $sgemm,
114 [AC_CHECK_LIB(cblas, cblas_dgemm,
115 [ax_blas_ok=yes
116 BLAS_LIBS="-lcblas -lf77blas -latlas"],
117 [], [-lf77blas -latlas])],
118 [], [-latlas])])
119fi
120
121# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
122if test $ax_blas_ok = no; then
123 AC_CHECK_LIB(blas, $sgemm,
124 [AC_CHECK_LIB(dgemm, $dgemm,
125 [AC_CHECK_LIB(sgemm, $sgemm,
126 [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"],
127 [], [-lblas])],
128 [], [-lblas])])
129fi
130
131# BLAS in Intel MKL library?
132if test $ax_blas_ok = no; then
133 AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl"])
134fi
135
136# BLAS in Apple vecLib library?
137if test $ax_blas_ok = no; then
138 save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS"
139 AC_MSG_CHECKING([for $sgemm in -framework vecLib])
140 AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"])
141 AC_MSG_RESULT($ax_blas_ok)
142 LIBS="$save_LIBS"
143fi
144
145# BLAS in Alpha CXML library?
146if test $ax_blas_ok = no; then
147 AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"])
148fi
149
150# BLAS in Alpha DXML library? (now called CXML, see above)
151if test $ax_blas_ok = no; then
152 AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"])
153fi
154
155# BLAS in Sun Performance library?
156if test $ax_blas_ok = no; then
157 if test "x$GCC" != xyes; then # only works with Sun CC
158 AC_CHECK_LIB(sunmath, acosp,
159 [AC_CHECK_LIB(sunperf, $sgemm,
160 [BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
161 ax_blas_ok=yes],[],[-lsunmath])])
162 fi
163fi
164
165# BLAS in SCSL library? (SGI/Cray Scientific Library)
166if test $ax_blas_ok = no; then
167 AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"])
168fi
169
170# BLAS in SGIMATH library?
171if test $ax_blas_ok = no; then
172 AC_CHECK_LIB(complib.sgimath, $sgemm,
173 [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"])
174fi
175
176# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
177if test $ax_blas_ok = no; then
178 AC_CHECK_LIB(blas, $sgemm,
179 [AC_CHECK_LIB(essl, $sgemm,
180 [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"],
181 [], [-lblas $FCLIBS])])
182fi
183
184# Generic BLAS library?
185if test $ax_blas_ok = no; then
186 AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"])
187fi
188
189AC_SUBST(BLAS_LIBS)
190
191LIBS="$ax_blas_save_LIBS"
192
193# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
194if test x"$ax_blas_ok" = xyes; then
195 ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])
196 :
197else
198 ax_blas_ok=no
199 $2
200fi
201])dnl AX_BLAS
Note: See TracBrowser for help on using the repository browser.