Mercurial > hg > octave-thorsten
annotate m4/ax_blas.m4 @ 15312:a4d7909c4edb draft
configure.ac: Disable JIT compilation by default. Added --enable-jit to compile JIT.
* configure.ac: Disable JIT compilation by default. Added --enable-jit to
compile JIT.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 05 Sep 2012 20:17:05 -0700 |
parents | ba431d1106e3 |
children |
rev | line source |
---|---|
10951 | 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 $FLIBS | |
18 # | |
19 # in that order. FLIBS is the output variable of the | |
20 # AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is | |
21 # sometimes necessary in order to link with F77 libraries. Users will also | |
22 # need to use AC_F77_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 F77 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 | |
15153
ba431d1106e3
build: Update ax_XXX macros in m4 directory to newest versions.
Rik <rik@octave.org>
parents:
11017
diff
changeset
|
66 #serial 12 |
10951 | 67 |
68 AU_ALIAS([ACX_BLAS], [AX_BLAS]) | |
69 AC_DEFUN([AX_BLAS], [ | |
3887 | 70 AC_PREREQ(2.50) |
71 AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS]) | |
10951 | 72 ax_blas_ok=no |
3887 | 73 |
74 AC_ARG_WITH(blas, | |
5844 | 75 [AS_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])]) |
3887 | 76 case $with_blas in |
77 yes | "") ;; | |
10951 | 78 no) ax_blas_ok=disable ;; |
3887 | 79 -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;; |
80 *) BLAS_LIBS="-l$with_blas" ;; | |
81 esac | |
82 | |
83 # Get fortran linker names of BLAS functions to check for. | |
10951 | 84 AC_F77_FUNC(sgemm) |
85 AC_F77_FUNC(dgemm) | |
3887 | 86 |
10951 | 87 ax_blas_save_LIBS="$LIBS" |
3887 | 88 LIBS="$LIBS $FLIBS" |
89 | |
90 # First, check BLAS_LIBS environment variable | |
10951 | 91 if test $ax_blas_ok = no; then |
3887 | 92 if test "x$BLAS_LIBS" != x; then |
93 save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" | |
94 AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS]) | |
10951 | 95 AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes], [BLAS_LIBS=""]) |
96 AC_MSG_RESULT($ax_blas_ok) | |
3887 | 97 LIBS="$save_LIBS" |
98 fi | |
99 fi | |
100 | |
101 # BLAS linked to by default? (happens on some supercomputers) | |
10951 | 102 if test $ax_blas_ok = no; then |
3887 | 103 save_LIBS="$LIBS"; LIBS="$LIBS" |
11017 | 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) | |
3887 | 107 LIBS="$save_LIBS" |
108 fi | |
109 | |
110 # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) | |
10951 | 111 if test $ax_blas_ok = no; then |
3887 | 112 AC_CHECK_LIB(atlas, ATL_xerbla, |
113 [AC_CHECK_LIB(f77blas, $sgemm, | |
114 [AC_CHECK_LIB(cblas, cblas_dgemm, | |
10951 | 115 [ax_blas_ok=yes |
3887 | 116 BLAS_LIBS="-lcblas -lf77blas -latlas"], |
117 [], [-lf77blas -latlas])], | |
118 [], [-latlas])]) | |
119 fi | |
120 | |
121 # BLAS in PhiPACK libraries? (requires generic BLAS lib, too) | |
10951 | 122 if test $ax_blas_ok = no; then |
3887 | 123 AC_CHECK_LIB(blas, $sgemm, |
124 [AC_CHECK_LIB(dgemm, $dgemm, | |
125 [AC_CHECK_LIB(sgemm, $sgemm, | |
10951 | 126 [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"], |
3887 | 127 [], [-lblas])], |
128 [], [-lblas])]) | |
129 fi | |
130 | |
10951 | 131 # BLAS in Intel MKL library? |
132 if test $ax_blas_ok = no; then | |
15153
ba431d1106e3
build: Update ax_XXX macros in m4 directory to newest versions.
Rik <rik@octave.org>
parents:
11017
diff
changeset
|
133 AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"],,[-lguide -lpthread]) |
10951 | 134 fi |
135 | |
136 # BLAS in Apple vecLib library? | |
137 if test $ax_blas_ok = no; then | |
138 save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" | |
11017 | 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) | |
10951 | 142 LIBS="$save_LIBS" |
143 fi | |
144 | |
3887 | 145 # BLAS in Alpha CXML library? |
10951 | 146 if test $ax_blas_ok = no; then |
147 AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"]) | |
3887 | 148 fi |
149 | |
150 # BLAS in Alpha DXML library? (now called CXML, see above) | |
10951 | 151 if test $ax_blas_ok = no; then |
152 AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"]) | |
3887 | 153 fi |
154 | |
155 # BLAS in Sun Performance library? | |
10951 | 156 if test $ax_blas_ok = no; then |
3887 | 157 if test "x$GCC" != xyes; then # only works with Sun CC |
158 AC_CHECK_LIB(sunmath, acosp, | |
159 [AC_CHECK_LIB(sunperf, $sgemm, | |
11017 | 160 [BLAS_LIBS="-xlic_lib=sunperf -lsunmath" |
10951 | 161 ax_blas_ok=yes],[],[-lsunmath])]) |
3887 | 162 fi |
163 fi | |
164 | |
165 # BLAS in SCSL library? (SGI/Cray Scientific Library) | |
10951 | 166 if test $ax_blas_ok = no; then |
167 AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"]) | |
3887 | 168 fi |
169 | |
170 # BLAS in SGIMATH library? | |
10951 | 171 if test $ax_blas_ok = no; then |
3887 | 172 AC_CHECK_LIB(complib.sgimath, $sgemm, |
10951 | 173 [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"]) |
3887 | 174 fi |
175 | |
176 # BLAS in IBM ESSL library? (requires generic BLAS lib, too) | |
10951 | 177 if test $ax_blas_ok = no; then |
3887 | 178 AC_CHECK_LIB(blas, $sgemm, |
179 [AC_CHECK_LIB(essl, $sgemm, | |
10951 | 180 [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"], |
3887 | 181 [], [-lblas $FLIBS])]) |
182 fi | |
183 | |
184 # Generic BLAS library? | |
10951 | 185 if test $ax_blas_ok = no; then |
186 AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"]) | |
3887 | 187 fi |
188 | |
189 AC_SUBST(BLAS_LIBS) | |
190 | |
10951 | 191 LIBS="$ax_blas_save_LIBS" |
3887 | 192 |
193 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: | |
10951 | 194 if test x"$ax_blas_ok" = xyes; then |
3887 | 195 ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]) |
196 : | |
197 else | |
10951 | 198 ax_blas_ok=no |
3887 | 199 $2 |
200 fi | |
10951 | 201 ])dnl AX_BLAS |