diff m4/ax_blas_f77_func.m4 @ 10951:97b8d462ef11

Update m4 macros.
author Ben Abbott <bpabbott@mac.com>
date Tue, 07 Sep 2010 17:10:00 -0400
parents m4/acx_blas_f77_func.m4@4531741e5236
children cab8365e476d
line wrap: on
line diff
copy from m4/acx_blas_f77_func.m4
copy to m4/ax_blas_f77_func.m4
--- a/m4/acx_blas_f77_func.m4
+++ b/m4/ax_blas_f77_func.m4
@@ -1,32 +1,28 @@
 # ===========================================================================
-#           http://autoconf-archive.cryp.to/acx_blas_f77_func.html
+#     http://www.gnu.org/software/autoconf-archive/ax_blas_f77_func.html
 # ===========================================================================
 #
 # SYNOPSIS
 #
-#   ACX_BLAS_F77_FUNC([ACTION-IF-PASS[, ACTION-IF-FAIL[, ACTION-IF-CROSS-COMPILING]])
-#   ACX_BLAS_WITH_F77_FUNC([ACTION-IF-FOUND-AND-PASS[, ACTION-IF-NOT-FOUND-OR-FAIL]])
+#   AX_BLAS_F77_FUNC([ACTION-IF-PASS[, ACTION-IF-FAIL[, ACTION-IF-CROSS-COMPILING]])
+#   AX_BLAS_WITH_F77_FUNC([ACTION-IF-FOUND-AND-PASS[, ACTION-IF-NOT-FOUND-OR-FAIL]])
 #
 # DESCRIPTION
 #
-#   These macros are intended as a supplement to the ACX_BLAS macro, to
+#   These macros are intended as a supplement to the AX_BLAS macro, to
 #   verify that BLAS functions are properly callable from Fortran. This is
 #   necessary, for example, if you want to build the LAPACK library on top
 #   of the BLAS.
 #
-#   ACX_BLAS_F77_FUNC uses the defined BLAS_LIBS and Fortran environment to
+#   AX_BLAS_F77_FUNC uses the defined BLAS_LIBS and Fortran environment to
 #   check for compatibility, and takes a specific action in case of success,
 #   resp. failure, resp. cross-compilation.
 #
-#   ACX_BLAS_WITH_F77_FUNC is a drop-in replacement wrapper for ACX_BLAS
-#   that calls ACX_BLAS_F77_FUNC after detecting a BLAS library and rejects
-#   it on failure (i.e. pretends that no library was found).
+#   AX_BLAS_WITH_F77_FUNC is a drop-in replacement wrapper for AX_BLAS that
+#   calls AX_BLAS_F77_FUNC after detecting a BLAS library and rejects it on
+#   failure (i.e. pretends that no library was found).
 #
-# LAST MODIFICATION
-#
-#   2008-06-18
-#
-# COPYLEFT
+# LICENSE
 #
 #   Copyright (c) 2008 Jaroslav Hajek <highegg@gmail.com>
 #
@@ -52,19 +48,21 @@
 #   all other use of the material that constitutes the Autoconf Macro.
 #
 #   This special exception to the GPL applies to versions of the Autoconf
-#   Macro released by the Autoconf Macro Archive. When you make and
-#   distribute a modified version of the Autoconf Macro, you may extend this
-#   special exception to the GPL to apply to your modified version as well.
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
 
-AC_DEFUN([ACX_BLAS_F77_FUNC], [
+#serial 5
+
+AU_ALIAS([ACX_BLAS_F77_FUNC], [AX_BLAS_F77_FUNC])
+AC_DEFUN([AX_BLAS_F77_FUNC], [
 AC_PREREQ(2.50)
-AC_REQUIRE([ACX_BLAS])
+AC_REQUIRE([AX_BLAS])
 
 # F77 call-compatibility checks
 if test "$cross_compiling" = yes ; then
 	ifelse($3, ,$1,$3)
-elif test x"$acx_blas_ok" = xyes; then
-	save_acx_blas_f77_func_LIBS="$LIBS"
+elif test x"$ax_blas_ok" = xyes; then
 	LIBS="$BLAS_LIBS $LIBS"
 	AC_LANG_PUSH(Fortran 77)
 # LSAME check (LOGICAL return values)
@@ -79,9 +77,9 @@
       if (w) stop 1
       w = lsame(c1,c1)
       if (.not. w) stop 1
-      ]]),[acx_blas_lsame_fcall_ok=yes],
-	[acx_blas_lsame_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_lsame_fcall_ok])
+      ]]),[ax_blas_lsame_fcall_ok=yes],
+	[ax_blas_lsame_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_lsame_fcall_ok])
 # ISAMAX check (INTEGER return values)
 	AC_MSG_CHECKING([whether ISAMAX is called correctly from Fortran])
 	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
@@ -92,11 +90,11 @@
       a(2) = -2e0
       i = isamax(2,a,1)
       if (i.ne.2) stop 1
-      ]]),[acx_blas_isamax_fcall_ok=yes],
-	[acx_blas_isamax_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_isamax_fcall_ok])
+      ]]),[ax_blas_isamax_fcall_ok=yes],
+	[ax_blas_isamax_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_isamax_fcall_ok])
 # SDOT check (REAL return values)
-	AC_MSG_CHECKING([whether SDOT is called correctly from Fortran])
+	AC_MSG_CHECKING([whether DDOT is called correctly from Fortran])
 	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
       real sdot,a(1),b(1),w
       external sdot
@@ -104,9 +102,9 @@
       b(1) = 2e0
       w = sdot(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[acx_blas_sdot_fcall_ok=yes],
-	[acx_blas_sdot_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_sdot_fcall_ok])
+      ]]),[ax_blas_sdot_fcall_ok=yes],
+	[ax_blas_sdot_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_sdot_fcall_ok])
 # DDOT check (DOUBLE return values)
 	AC_MSG_CHECKING([whether DDOT is called correctly from Fortran])
 	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
@@ -116,9 +114,9 @@
       b(1) = 2d0
       w = ddot(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[acx_blas_ddot_fcall_ok=yes],
-	[acx_blas_ddot_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_ddot_fcall_ok])
+      ]]),[ax_blas_ddot_fcall_ok=yes],
+	[ax_blas_ddot_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_ddot_fcall_ok])
 # CDOTU check (COMPLEX return values)
 	AC_MSG_CHECKING([whether CDOTU is called correctly from Fortran])
 	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
@@ -128,9 +126,9 @@
       b(1) = cmplx(1e0,2e0)
       w = cdotu(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[acx_blas_cdotu_fcall_ok=yes],
-	[acx_blas_cdotu_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_cdotu_fcall_ok])
+      ]]),[ax_blas_cdotu_fcall_ok=yes],
+	[ax_blas_cdotu_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_cdotu_fcall_ok])
 # ZDOTU check (DOUBLE COMPLEX return values)
 	AC_MSG_CHECKING([whether ZDOTU is called correctly from Fortran])
 	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
@@ -140,66 +138,37 @@
       b(1) = dcmplx(1d0,2d0)
       w = zdotu(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[acx_blas_zdotu_fcall_ok=yes],
-	[acx_blas_zdotu_fcall_ok=no])
-	AC_MSG_RESULT([$acx_blas_zdotu_fcall_ok])
-# Check for correct integer size
-# FIXME: this may fail with things like -ftrapping-math.
-        AC_MSG_CHECKING([whether the integer size is correct])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
-      integer n,nn(3)
-      real s,a(1),b(1),sdot
-      a(1) = 1.0
-      b(1) = 1.0
-c Generate -2**33 + 1, if possible
-      n = 2
-      n = -4 * (n ** 30)
-      n = n + 1
-      if (n >= 0) goto 1
-c This means we're on 64-bit integers. Check whether the BLAS is, too.
-      s = sdot(n,a,1,b,1)
-      if (s .ne. 0.0) stop 1
-    1 continue
-c We may be on 32-bit integers, and the BLAS on 64 bits. This is almost bound
-c to have already failed, but just in case, we'll check.
-      nn(1) = -1
-      nn(2) = 1
-      nn(3) = -1
-      s = sdot(nn(2),a,1,b,1)
-      if (s .ne. 1.0) stop 1
-       ]]),[acx_blas_integer_size_ok=yes],
-	[acx_blas_integer_size_ok=no])
-	AC_MSG_RESULT([$acx_blas_integer_size_ok])
+      ]]),[ax_blas_zdotu_fcall_ok=yes],
+	[ax_blas_zdotu_fcall_ok=no])
+	AC_MSG_RESULT([$ax_blas_zdotu_fcall_ok])
 
 	AC_LANG_POP(Fortran 77)
 
 # if any of the tests failed, reject the BLAS library
-	if test $acx_blas_lsame_fcall_ok = yes \
-		-a $acx_blas_sdot_fcall_ok = yes \
-		-a $acx_blas_ddot_fcall_ok = yes \
-		-a $acx_blas_cdotu_fcall_ok = yes \
-		-a $acx_blas_zdotu_fcall_ok = yes \
-		-a $acx_blas_integer_size_ok = yes; then
-		acx_blas_f77_func_ok=yes;
+	if test $ax_blas_lsame_fcall_ok = yes \
+		-a $ax_blas_sdot_fcall_ok = yes \
+		-a $ax_blas_ddot_fcall_ok = yes \
+		-a $ax_blas_cdotu_fcall_ok = yes \
+		-a $ax_blas_zdotu_fcall_ok = yes ; then
+		ax_blas_f77_func_ok=yes;
 		$1
 	else
-		acx_blas_f77_func_ok=no;
+		ax_blas_f77_func_ok=no;
 		$2
 	fi
-	LIBS="$save_acx_blas_f77_func_LIBS"
 fi
 
-])dnl ACX_BLAS_F77_FUNC
+])dnl AX_BLAS_F77_FUNC
 
-AC_DEFUN([ACX_BLAS_WITH_F77_FUNC], [
+AC_DEFUN([AX_BLAS_WITH_F77_FUNC], [
 AC_PREREQ(2.50)
-ACX_BLAS([# disable special action], [])
-if test x$acx_blas_ok = xyes ; then
-	ACX_BLAS_F77_FUNC(
+AX_BLAS([# disable special action], [])
+if test x$ax_blas_ok = xyes ; then
+	AX_BLAS_F77_FUNC(
 	[ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])],
-	[acx_blas_ok=no; BLAS_LIBS=])
+	[ax_blas_ok=no; BLAS_LIBS=])
 fi
-if test x$acx_blas_ok = xno ; then
+if test x$ax_blas_ok = xno ; then
 	$2
 fi
-])dnl ACX_BLAS_WITH_F77_FUNC
+])dnl AX_BLAS_WITH_F77_FUNC