From 43a75e31715a9048df8fe031e2c0edf34b6af31f Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 23 Dec 2025 11:21:12 +0100 Subject: [PATCH 1/5] Delete configure_n --- configure_n | 12410 ----------------------------------------------- configure_n.ac | 976 ---- 2 files changed, 13386 deletions(-) delete mode 100755 configure_n delete mode 100755 configure_n.ac diff --git a/configure_n b/configure_n deleted file mode 100755 index 08c0b135..00000000 --- a/configure_n +++ /dev/null @@ -1,12410 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for AMG4PSBLAS 1.0.0. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://github.com/sfilippone/amg4psblas/issues about -$0: your system, including any error possibly output before -$0: this message. Then install a modern shell, or manually -$0: run the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='AMG4PSBLAS' -PACKAGE_TARNAME='amg4psblas' -PACKAGE_VERSION='1.0.0' -PACKAGE_STRING='AMG4PSBLAS 1.0.0' -PACKAGE_BUGREPORT='https://github.com/sfilippone/amg4psblas/issues' -PACKAGE_URL='' - -ac_unique_file="amgprec/amg_prec_type.f90" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -MPIFCC -RANLIB -AR -FLINK -FMFLAG -FIFLAG -FAKEMPI -EXTRA_OPT -CXXOPT -CCOPT -FCOPT -AMGLIBNAME -UTILMODNAME -METHDMODNAME -PRECMODNAME -BASEMODNAME -CDEFINES -FDEFINES -COMPILERULES -MODEXT -AMGCXXDEFINES -AMGCDEFINES -AMGFDEFINES -SLUDIST_LIBS -SLUDIST_FLAGS -UMF_LIBS -UMF_FLAGS -SLU_LIBS -SLU_FLAGS -MUMPS_LIBS -MUMPS_FLAGS -METIS_LIBS -BLAS_LIBS -EXTRA_LIBS -INSTALL_SAMPLESDIR -INSTALL_DOCSDIR -INSTALL_MODULESDIR -INSTALL_INCLUDEDIR -INSTALL_LIBDIR -INSTALL_DIR -INSTALL -PSBLAS_RULES -PSBLAS_LIBS -PSBLAS_INCLUDES -PSBLAS_LIBDIR -PSBLAS_MODDIR -PSBLAS_INCDIR -PSBLAS_DIR -LAPACK_LIBS -EGREP -GREP -CPP -MPICXX -MPIFC -MPILIBS -MPICC -am__fastdepCXX_FALSE -am__fastdepCXX_TRUE -CXXDEPMODE -ac_ct_CXX -CXXFLAGS -CXX -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -ac_ct_CC -CPPFLAGS -CFLAGS -CC -OBJEXT -EXEEXT -ac_ct_FC -LDFLAGS -FCFLAGS -FC -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -runstatedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_psblas -with_psblas_incdir -with_psblas_moddir -with_psblas_libdir -enable_silent_rules -enable_dependency_tracking -enable_serial -with_ccopt -with_cxxopt -with_fcopt -with_libs -with_clibs -with_flibs -with_cxxlibs -with_library_path -with_include_path -with_module_path -with_extra_libs -with_ipk -with_lpk -with_blas -with_blasdir -with_lapack -with_metis -with_metisincfile -with_metisdir -with_metisincdir -with_metislibdir -with_mumps -with_mumpsdir -with_mumpsincdir -with_mumpsmoddir -with_mumpslibdir -with_umfpack -with_umfpackdir -with_umfpackincdir -with_umfpacklibdir -with_superlu -with_superludir -with_superluincdir -with_superlulibdir -with_superludist -with_superludistdir -with_superludistincdir -with_superludistlibdir -' - ac_precious_vars='build_alias -host_alias -target_alias -FC -FCFLAGS -LDFLAGS -LIBS -CC -CFLAGS -CPPFLAGS -CXX -CXXFLAGS -CCC -MPICC -MPIFC -MPICXX -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures AMG4PSBLAS 1.0.0 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/amg4psblas] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of AMG4PSBLAS 1.0.0:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-serial Specify whether to enable a fake mpi library to run - in serial mode. - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-psblas=DIR The install directory for PSBLAS, for example, - --with-psblas=/opt/packages/psblas-3.5 - --with-psblas-incdir=DIR - Specify the directory for PSBLAS C includes. - --with-psblas-moddir=DIR - Specify the directory for PSBLAS Fortran modules. - --with-psblas-libdir=DIR - Specify the directory for PSBLAS library. - --with-ccopt additional [CCOPT] flags to be added: will prepend - to [CCOPT] - --with-cxxopt additional [CXXOPT] flags to be added: will prepend - to [CXXOPT] - --with-fcopt additional [FCOPT] flags to be added: will prepend - to [FCOPT] - --with-libs List additional link flags here. For example, - --with-libs=-lspecial_system_lib or - --with-libs=-L/path/to/libs - --with-clibs additional [CLIBS] flags to be added: will prepend - to [CLIBS] - --with-flibs additional [FLIBS] flags to be added: will prepend - to [FLIBS] - --with-cxxlibs additional [CXXLIBS] flags to be added: will prepend - to [CXXLIBS] - --with-library-path additional [LIBRARYPATH] flags to be added: will - prepend to [LIBRARYPATH] - --with-include-path additional [INCLUDEPATH] flags to be added: will - prepend to [INCLUDEPATH] - --with-module-path additional [MODULE_PATH] flags to be added: will - prepend to [MODULE_PATH] - --with-extra-libs List additional link flags here. For example, - --with-extra-libs=-lspecial_system_lib or - --with-extra-libs=-L/path/to/libs - --with-ipk= Specify the size in bytes for local indices and - data, default 4 bytes. - --with-lpk= Specify the size in bytes for global indices and - data, default 8 bytes. - --with-blas= use BLAS library - --with-blasdir= search for BLAS library in - --with-lapack= use LAPACK library - --with-metis=LIBNAME Specify the library name for METIS library. Default: - "-lmetis" - --with-metisincfile=DIR Specify the name for METIS include file. - --with-metisdir=DIR Specify the directory for METIS library and - includes. - --with-metisincdir=DIR Specify the directory for METIS includes. - --with-metislibdir=DIR Specify the directory for METIS library. - --with-mumps=LIBNAME Specify the libname for MUMPS. Default: autodetect - with minimum "-lmumps_common -lpord" - --with-mumpsdir=DIR Specify the directory for MUMPS library and - includes. Note: you will need to add auxiliary - libraries with --extra-libs; this depends on how - MUMPS was configured and installed, at a minimum you - will need SCALAPACK and BLAS - --with-mumpsincdir=DIR Specify the directory for MUMPS includes. - --with-mumpsmoddir=DIR Specify the directory for MUMPS Fortran modules. - --with-mumpslibdir=DIR Specify the directory for MUMPS library. - --with-umfpack=LIBNAME Specify the library name for UMFPACK and its support - libraries. Default: "-lumfpack -lamd" - --with-umfpackdir=DIR Specify the directory for UMFPACK library and - includes. - --with-umfpackincdir=DIR - Specify the directory for UMFPACK includes. - --with-umfpacklibdir=DIR - Specify the directory for UMFPACK library. - --with-superlu=LIBNAME Specify the library name for SUPERLU library. - Default: "-lsuperlu" - --with-superludir=DIR Specify the directory for SUPERLU library and - includes. - --with-superluincdir=DIR - Specify the directory for SUPERLU includes. - --with-superlulibdir=DIR - Specify the directory for SUPERLU library. - --with-superludist=LIBNAME - Specify the libname for SUPERLUDIST library. - Requires you also specify SuperLU. Default: - "-lsuperlu_dist" - --with-superludistdir=DIR - Specify the directory for SUPERLUDIST library and - includes. - --with-superludistincdir=DIR - Specify the directory for SUPERLUDIST includes. - --with-superludistlibdir=DIR - Specify the directory for SUPERLUDIST library. - -Some influential environment variables: - FC Fortran compiler command - FCFLAGS Fortran compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CC C compiler command - CFLAGS C compiler flags - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CXX C++ compiler command - CXXFLAGS C++ compiler flags - MPICC MPI C compiler command - MPIFC MPI Fortran compiler command - MPICXX MPI C++ compiler command - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -AMG4PSBLAS configure 1.0.0 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_fc_try_compile LINENO -# --------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_fc_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_fc_try_compile - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_fc_try_link LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_fc_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_fc_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_fc_try_link - -# ac_fn_cxx_try_link LINENO -# ------------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_link - -# ac_fn_cxx_check_func LINENO FUNC VAR -# ------------------------------------ -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_cxx_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_func - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## -------------------------------------------------------------- ## -## Report this to https://github.com/sfilippone/amg4psblas/issues ## -## -------------------------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by AMG4PSBLAS $as_me 1.0.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# VERSION is the file containing the PSBLAS version code -# FIXME -amg4psblas_cv_version="1.0.0" - -# A sample source file - -# Our custom M4 macros are in the 'config' directory - -{ $as_echo "$as_me:${as_lineno-$LINENO}: --------------------------------------------------------------------------------- - Welcome to the $PACKAGE_NAME $amg4psblas_cv_version configure Script. - - This creates Make.inc, but if you read carefully the - documentation, you can make your own by hand for your needs. - - ./configure --with-psblas=/path/to/psblas - See ./configure --help=short fore more info. --------------------------------------------------------------------------------- - " >&5 -$as_echo "$as_me: --------------------------------------------------------------------------------- - Welcome to the $PACKAGE_NAME $amg4psblas_cv_version configure Script. - - This creates Make.inc, but if you read carefully the - documentation, you can make your own by hand for your needs. - - ./configure --with-psblas=/path/to/psblas - See ./configure --help=short fore more info. --------------------------------------------------------------------------------- - " >&6;} - -############################################################################### -# FLAGS and LIBS user customization -############################################################################### - - - -# Check whether --with-psblas was given. -if test "${with_psblas+set}" = set; then : - withval=$with_psblas; pac_cv_psblas_dir=$withval -else - pac_cv_psblas_dir='' -fi - - -# Check whether --with-psblas-incdir was given. -if test "${with_psblas_incdir+set}" = set; then : - withval=$with_psblas_incdir; pac_cv_psblas_incdir=$withval -else - pac_cv_psblas_incdir='' -fi - - -# Check whether --with-psblas-moddir was given. -if test "${with_psblas_moddir+set}" = set; then : - withval=$with_psblas_moddir; pac_cv_psblas_moddir=$withval -else - pac_cv_psblas_moddir='' -fi - - -# Check whether --with-psblas-libdir was given. -if test "${with_psblas_libdir+set}" = set; then : - withval=$with_psblas_libdir; pac_cv_psblas_libdir=$withval -else - pac_cv_psblas_libdir='' -fi - -if test x"$pac_cv_psblas_incdir" == "x" ; then - pac_cv_psblas_incdir="$pac_cv_psblas_dir/include"; -fi -if test x"$pac_cv_psblas_moddir" == "x" ; then - pac_cv_psblas_moddir="$pac_cv_psblas_dir/modules"; -fi -if test x"$pac_cv_psblas_libdir" == "x" ; then - pac_cv_psblas_libdir="$pac_cv_psblas_dir/lib"; -fi - - -PSBLAS_DIR="$pac_cv_psblas_dir"; -PSBLAS_INCDIR="$pac_cv_psblas_incdir"; -PSBLAS_MODDIR="$pac_cv_psblas_moddir"; -PSBLAS_LIBDIR="$pac_cv_psblas_libdir"; -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PSBLAS install dir" >&5 -$as_echo_n "checking for PSBLAS install dir... " >&6; } -if test "X$PSBLAS_DIR" != "X" ; then - case $PSBLAS_DIR in - /*) ;; - *) as_fn_error $? "The PSBLAS installation dir must be an absolute pathname - specified with --with-psblas=/path/to/psblas" "$LINENO" 5 - esac - if test ! -d "$PSBLAS_DIR" ; then - as_fn_error $? "Could not find PSBLAS build dir $PSBLAS_DIR!" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PSBLAS_DIR" >&5 -$as_echo "$PSBLAS_DIR" >&6; } -fi - -am__api_version='1.16' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='amg4psblas' - VERSION='1.0.0' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -# -# Installation. -# -# - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to install" >&5 -$as_echo_n "checking where to install... " >&6; } -case $prefix in - \/* ) eval "INSTALL_DIR=$prefix";; - * ) eval "INSTALL_DIR=/usr/local/amg4psblas";; -esac -case $libdir in - \/* ) eval "INSTALL_LIBDIR=$libdir";; - * ) eval "INSTALL_LIBDIR=$INSTALL_DIR/lib";; -esac -case $includedir in - \/* ) eval "INSTALL_INCLUDEDIR=$includedir";; - * ) eval "INSTALL_INCLUDEDIR=$INSTALL_DIR/include";; -esac -INSTALL_MODULESDIR=$INSTALL_DIR/modules -case $docsdir in - \/* ) eval "INSTALL_DOCSDIR=$docsdir";; - * ) eval "INSTALL_DOCSDIR=$INSTALL_DIR/docs";; -esac -case $samplesdir in - \/* ) eval "INSTALL_SAMPLESDIR=$samplesdir";; - * ) eval "INSTALL_SAMPLESDIR=$INSTALL_DIR/samples";; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&5 -$as_echo "$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR" >&6; } - -save_FCFLAGS="$FCFLAGS"; -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifort ifc nagfor gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_FC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$FC"; then - ac_cv_prog_FC="$FC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_FC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -FC=$ac_cv_prog_FC -if test -n "$FC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5 -$as_echo "$FC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$FC" && break - done -fi -if test -z "$FC"; then - ac_ct_FC=$FC - for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifort ifc nagfor gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_FC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_FC"; then - ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_FC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_FC=$ac_cv_prog_ac_ct_FC -if test -n "$ac_ct_FC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5 -$as_echo "$ac_ct_FC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_FC" && break -done - - if test "x$ac_ct_FC" = x; then - FC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - FC=$ac_ct_FC - fi -fi - - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done -rm -f a.out - -cat > conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler works" >&5 -$as_echo_n "checking whether the Fortran compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "Fortran compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler default output file name" >&5 -$as_echo_n "checking for Fortran compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat > conftest.$ac_ext <<_ACEOF - program main - open(unit=9,file='conftest.out') - close(unit=9) - - end -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run Fortran compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } -if ${ac_cv_fc_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_fc_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5 -$as_echo "$ac_cv_fc_compiler_gnu" >&6; } -ac_ext=$ac_save_ext -ac_test_FCFLAGS=${FCFLAGS+set} -ac_save_FCFLAGS=$FCFLAGS -FCFLAGS= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5 -$as_echo_n "checking whether $FC accepts -g... " >&6; } -if ${ac_cv_prog_fc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - FCFLAGS=-g -cat > conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - ac_cv_prog_fc_g=yes -else - ac_cv_prog_fc_g=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5 -$as_echo "$ac_cv_prog_fc_g" >&6; } -if test "$ac_test_FCFLAGS" = set; then - FCFLAGS=$ac_save_FCFLAGS -elif test $ac_cv_prog_fc_g = yes; then - if test "x$ac_cv_fc_compiler_gnu" = xyes; then - FCFLAGS="-g -O2" - else - FCFLAGS="-g" - fi -else - if test "x$ac_cv_fc_compiler_gnu" = xyes; then - FCFLAGS="-O2" - else - FCFLAGS= - fi -fi - -if test $ac_compiler_gnu = yes; then - GFC=yes -else - GFC= -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -FCFLAGS="$save_FCFLAGS"; -save_CFLAGS="$CFLAGS"; -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in cc xlc pgcc icc gcc - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cc xlc pgcc icc gcc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -CFLAGS="$save_CFLAGS"; -save_CXXFLAGS="$CXXFLAGS"; -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in CC xlc++ icpc g++ - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in CC xlc++ icpc g++ -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -CXXFLAGS="$save_CXXFLAGS"; - - -# Sanity checks, although redundant (useful when debugging this configure.ac)! -if test "X$FC" == "X" ; then - as_fn_error $? "Problem : No Fortran compiler specified nor found!" "$LINENO" 5 -fi - -if eval "$FC -qversion 2>&1 | grep XL 2>/dev/null" ; then - # Some configurations of the XLF want "-WF," prepended to -D.. flags. - # TODO : discover the exact conditions when the usage of -WF is needed. - amg_cv_define_prepend="-WF," - if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then - FDEFINES="$amg_cv_define_prepend-DXLF_10 $FDEFINES" - fi - - # Note : there could be problems with old xlf compiler versions ( <10.1 ) - # since (as far as it is known to us) -WF, is not used in earlier versions. - # More problems could be undocumented yet. -fi - -if test "X$CC" == "X" ; then - as_fn_error $? "Problem : No C compiler specified nor found!" "$LINENO" 5 -fi - case $ac_cv_prog_cc_stdc in #( - no) : - ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( - *) : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 -$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -if ${ac_cv_prog_cc_c99+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c99=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -#include - -// Check varargs macros. These examples are taken from C99 6.10.3.5. -#define debug(...) fprintf (stderr, __VA_ARGS__) -#define showlist(...) puts (#__VA_ARGS__) -#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -static void -test_varargs_macros (void) -{ - int x = 1234; - int y = 5678; - debug ("Flag"); - debug ("X = %d\n", x); - showlist (The first, second, and third items.); - report (x>y, "x is %d but y is %d", x, y); -} - -// Check long long types. -#define BIG64 18446744073709551615ull -#define BIG32 4294967295ul -#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -#if !BIG_OK - your preprocessor is broken; -#endif -#if BIG_OK -#else - your preprocessor is broken; -#endif -static long long int bignum = -9223372036854775807LL; -static unsigned long long int ubignum = BIG64; - -struct incomplete_array -{ - int datasize; - double data[]; -}; - -struct named_init { - int number; - const wchar_t *name; - double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict (ccp restrict text) -{ - // See if C++-style comments work. - // Iterate through items via the restricted pointer. - // Also check for declarations in for loops. - for (unsigned int i = 0; *(text+i) != '\0'; ++i) - continue; - return 0; -} - -// Check varargs and va_copy. -static void -test_varargs (const char *format, ...) -{ - va_list args; - va_start (args, format); - va_list args_copy; - va_copy (args_copy, args); - - const char *str; - int number; - float fnumber; - - while (*format) - { - switch (*format++) - { - case 's': // string - str = va_arg (args_copy, const char *); - break; - case 'd': // int - number = va_arg (args_copy, int); - break; - case 'f': // float - fnumber = va_arg (args_copy, double); - break; - default: - break; - } - } - va_end (args_copy); - va_end (args); -} - -int -main () -{ - - // Check bool. - _Bool success = false; - - // Check restrict. - if (test_restrict ("String literal") == 0) - success = true; - char *restrict newvar = "Another string"; - - // Check varargs. - test_varargs ("s, d' f .", "string", 65, 34.234); - test_varargs_macros (); - - // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); - ia->datasize = 10; - for (int i = 0; i < ia->datasize; ++i) - ia->data[i] = i * 1.234; - - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; - - ni.number = 58; - - int dynamic_array[ni.number]; - dynamic_array[ni.number - 1] = 543; - - // work around unused variable warnings - return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' - || dynamic_array[ni.number - 1] != 543); - - ; - return 0; -} -_ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c99=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c99" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c99" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c99" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c99" != xno; then : - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 -else - ac_cv_prog_cc_stdc=no -fi - -fi - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 -$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } - if ${ac_cv_prog_cc_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -fi - - case $ac_cv_prog_cc_stdc in #( - no) : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; #( - '') : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; #( - *) : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 -$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; -esac - -if test "x$ac_cv_prog_cc_stdc" == "xno" ; then - as_fn_error $? "Problem : Need a C99 compiler ! " "$LINENO" 5 -else - C99OPT="$ac_cv_prog_cc_stdc"; -fi -############################################################################### -# Suitable MPI compilers detection -############################################################################### -# Note: Someday we will contemplate a fake MPI - configured version of PSBLAS -############################################################################### -# First check whether the user required our serial (fake) mpi. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we want serial mpi stubs" >&5 -$as_echo_n "checking whether we want serial mpi stubs... " >&6; } -# Check whether --enable-serial was given. -if test "${enable_serial+set}" = set; then : - enableval=$enable_serial; -pac_cv_serial_mpi="yes"; - - -fi - -if test x"$pac_cv_serial_mpi" == x"yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5 -$as_echo "yes." >&6; } -else - pac_cv_serial_mpi="no"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5 -$as_echo "no." >&6; } -fi - - - -#Note : we miss the name of the Intel C compiler -if test x"$pac_cv_serial_mpi" == x"yes" ; then - FAKEMPI="fakempi.o"; - MPIFC="$FC"; - MPICC="$CC"; - MPICXX="$CXX"; - CXXDEFINES="-DSERIAL_MPI $CXXDEFINES"; - -else -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test "X$MPICC" = "X" ; then - # This is our MPICC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlc mpiicc mpcc mpicc cc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPICC"; then - ac_cv_prog_MPICC="$MPICC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPICC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPICC=$ac_cv_prog_MPICC -if test -n "$MPICC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5 -$as_echo "$MPICC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPICC" && break -done - -fi - - - - - - - for ac_prog in mpicc hcc mpxlc_r mpxlc mpcc cmpicc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPICC"; then - ac_cv_prog_MPICC="$MPICC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPICC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPICC=$ac_cv_prog_MPICC -if test -n "$MPICC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5 -$as_echo "$MPICC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPICC" && break -done -test -n "$MPICC" || MPICC="$CC" - - acx_mpi_save_CC="$CC" - CC="$MPICC" - - - -if test x = x"$MPILIBS"; then - ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" -if test "x$ac_cv_func_MPI_Init" = xyes; then : - MPILIBS=" " -fi - -fi - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 -$as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if ${ac_cv_lib_mpi_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpi $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); -int -main () -{ -return MPI_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpi_MPI_Init=yes -else - ac_cv_lib_mpi_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then : - MPILIBS="-lmpi" -fi - -fi -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 -$as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if ${ac_cv_lib_mpich_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpich $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); -int -main () -{ -return MPI_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_mpich_MPI_Init=yes -else - ac_cv_lib_mpich_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then : - MPILIBS="-lmpich" -fi - -fi - -if test x != x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5 -$as_echo_n "checking for mpi.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - MPILIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -CC="$acx_mpi_save_CC" - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x = x"$MPILIBS"; then - as_fn_error $? "Cannot find any suitable MPI implementation for C" "$LINENO" 5 - : -else - -$as_echo "#define HAVE_MPI 1" >>confdefs.h - - : -fi - - - -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - -if test "X$MPIFC" = "X" ; then - # This is our MPIFC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlf2003_r mpxlf2003 mpxlf95_r mpxlf90 mpiifort mpf95 mpf90 mpifort mpif95 mpif90 ftn -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIFC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPIFC"; then - ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPIFC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPIFC=$ac_cv_prog_MPIFC -if test -n "$MPIFC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5 -$as_echo "$MPIFC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPIFC" && break -done - -fi - - - - - - - - for ac_prog in mpif90 hf90 mpxlf90 mpxlf95 mpf90 cmpifc cmpif90c -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPIFC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPIFC"; then - ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPIFC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPIFC=$ac_cv_prog_MPIFC -if test -n "$MPIFC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5 -$as_echo "$MPIFC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPIFC" && break -done -test -n "$MPIFC" || MPIFC="$FC" - - acx_mpi_save_FC="$FC" - FC="$MPIFC" - - - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init" >&5 -$as_echo_n "checking for MPI_Init... " >&6; } - cat > conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - MPILIBS=" " - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lfmpi" >&5 -$as_echo_n "checking for MPI_Init in -lfmpi... " >&6; } -if ${ac_cv_lib_fmpi_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lfmpi $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_fmpi_MPI_Init=yes -else - ac_cv_lib_fmpi_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fmpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_fmpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_fmpi_MPI_Init" = xyes; then : - MPILIBS="-lfmpi" -fi - - fi - if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpichf90" >&5 -$as_echo_n "checking for MPI_Init in -lmpichf90... " >&6; } -if ${ac_cv_lib_mpichf90_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpichf90 $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_mpichf90_MPI_Init=yes -else - ac_cv_lib_mpichf90_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpichf90_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpichf90_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpichf90_MPI_Init" = xyes; then : - MPILIBS="-lmpichf90" -fi - - fi - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 -$as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if ${ac_cv_lib_mpi_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpi $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_mpi_MPI_Init=yes -else - ac_cv_lib_mpi_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then : - MPILIBS="-lmpi" -fi - -fi -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 -$as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if ${ac_cv_lib_mpich_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpich $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call MPI_Init - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_mpich_MPI_Init=yes -else - ac_cv_lib_mpich_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then : - MPILIBS="-lmpich" -fi - -fi - -if test x != x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpif.h" >&5 -$as_echo_n "checking for mpif.h... " >&6; } - cat > conftest.$ac_ext <<_ACEOF - program main - include 'mpif.h' - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - MPILIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -FC="$acx_mpi_save_FC" - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x = x"$MPILIBS"; then - as_fn_error $? "Cannot find any suitable MPI implementation for Fortran" "$LINENO" 5 - : -else - -$as_echo "#define HAVE_MPI 1" >>confdefs.h - - : -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test "X$MPICXX" = "X" ; then - # This is our MPICC compiler preference: it will override ACX_MPI's first try. - for ac_prog in mpxlc++ mpiicpc mpicxx -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPICXX"; then - ac_cv_prog_MPICXX="$MPICXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPICXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPICXX=$ac_cv_prog_MPICXX -if test -n "$MPICXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICXX" >&5 -$as_echo "$MPICXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPICXX" && break -done - -fi - - - - - - - for ac_prog in mpic++ mpicxx mpiCC hcp mpxlC_r mpxlC mpCC cmpic++ -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MPICXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MPICXX"; then - ac_cv_prog_MPICXX="$MPICXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MPICXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MPICXX=$ac_cv_prog_MPICXX -if test -n "$MPICXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICXX" >&5 -$as_echo "$MPICXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$MPICXX" && break -done -test -n "$MPICXX" || MPICXX="$CXX" - - acx_mpi_save_CXX="$CXX" - CXX="$MPICXX" - - - -if test x = x"$MPILIBS"; then - ac_fn_cxx_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" -if test "x$ac_cv_func_MPI_Init" = xyes; then : - MPILIBS=" " -fi - -fi - -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 -$as_echo_n "checking for MPI_Init in -lmpi... " >&6; } -if ${ac_cv_lib_mpi_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpi $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); -int -main () -{ -return MPI_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_mpi_MPI_Init=yes -else - ac_cv_lib_mpi_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then : - MPILIBS="-lmpi" -fi - -fi -if test x = x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 -$as_echo_n "checking for MPI_Init in -lmpich... " >&6; } -if ${ac_cv_lib_mpich_MPI_Init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmpich $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MPI_Init (); -int -main () -{ -return MPI_Init (); - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_link "$LINENO"; then : - ac_cv_lib_mpich_MPI_Init=yes -else - ac_cv_lib_mpich_MPI_Init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 -$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } -if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then : - MPILIBS="-lmpich" -fi - -fi - -if test x != x"$MPILIBS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5 -$as_echo_n "checking for mpi.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - MPILIBS="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -CXX="$acx_mpi_save_CXX" - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x = x"$MPILIBS"; then - as_fn_error $? "Cannot find any suitable MPI implementation for C++" "$LINENO" 5 - : -else - -$as_echo "#define HAVE_MPI 1" >>confdefs.h - - : -fi - -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - -FC="$MPIFC" ; -CC="$MPICC"; -CXX="$MPICXX"; -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -############################################################################### -# Sanity checks, although redundant (useful when debugging this configure.ac)! -############################################################################### - -if test "X$MPIFC" == "X" ; then - as_fn_error $? "Problem : No MPI Fortran compiler specified nor found!" "$LINENO" 5 -fi - -if test "X$MPICC" == "X" ; then - as_fn_error $? "Problem : No MPI C compiler specified nor found!" "$LINENO" 5 -fi - -############################################################################### -# FLAGS and LIBS user customization -############################################################################### - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CCOPT flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional CCOPT flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-ccopt was given. -if test "${with_ccopt+set}" = set; then : - withval=$with_ccopt; -CCOPT="${withval} ${CCOPT}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CCOPT = ${CCOPT}" >&5 -$as_echo "CCOPT = ${CCOPT}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CXXOPT flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional CXXOPT flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-cxxopt was given. -if test "${with_cxxopt+set}" = set; then : - withval=$with_cxxopt; -CXXOPT="${withval} ${CXXOPT}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CXXOPT = ${CXXOPT}" >&5 -$as_echo "CXXOPT = ${CXXOPT}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional FCOPT flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional FCOPT flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-fcopt was given. -if test "${with_fcopt+set}" = set; then : - withval=$with_fcopt; -FCOPT="${withval} ${FCOPT}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FCOPT = ${FCOPT}" >&5 -$as_echo "FCOPT = ${FCOPT}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional libraries are needed" >&5 -$as_echo_n "checking whether additional libraries are needed... " >&6; } - -# Check whether --with-libs was given. -if test "${with_libs+set}" = set; then : - withval=$with_libs; -LIBS="${withval} ${LIBS}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: LIBS = ${LIBS}" >&5 -$as_echo "LIBS = ${LIBS}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CLIBS flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional CLIBS flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-clibs was given. -if test "${with_clibs+set}" = set; then : - withval=$with_clibs; -CLIBS="${withval} ${CLIBS}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CLIBS = ${CLIBS}" >&5 -$as_echo "CLIBS = ${CLIBS}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional FLIBS flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional FLIBS flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-flibs was given. -if test "${with_flibs+set}" = set; then : - withval=$with_flibs; -FLIBS="${withval} ${FLIBS}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FLIBS = ${FLIBS}" >&5 -$as_echo "FLIBS = ${FLIBS}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional CXXLIBS flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional CXXLIBS flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-cxxlibs was given. -if test "${with_cxxlibs+set}" = set; then : - withval=$with_cxxlibs; -CXXLIBS="${withval} ${CXXLIBS}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CXXLIBS = ${CXXLIBS}" >&5 -$as_echo "CXXLIBS = ${CXXLIBS}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional LIBRARYPATH flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional LIBRARYPATH flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-library-path was given. -if test "${with_library_path+set}" = set; then : - withval=$with_library_path; -LIBRARYPATH="${withval} ${LIBRARYPATH}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: LIBRARYPATH = ${LIBRARYPATH}" >&5 -$as_echo "LIBRARYPATH = ${LIBRARYPATH}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional INCLUDEPATH flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional INCLUDEPATH flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-include-path was given. -if test "${with_include_path+set}" = set; then : - withval=$with_include_path; -INCLUDEPATH="${withval} ${INCLUDEPATH}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: INCLUDEPATH = ${INCLUDEPATH}" >&5 -$as_echo "INCLUDEPATH = ${INCLUDEPATH}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional MODULE_PATH flags should be added (should be invoked only once)" >&5 -$as_echo_n "checking whether additional MODULE_PATH flags should be added (should be invoked only once)... " >&6; } - -# Check whether --with-module-path was given. -if test "${with_module_path+set}" = set; then : - withval=$with_module_path; -MODULE_PATH="${withval} ${MODULE_PATH}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: MODULE_PATH = ${MODULE_PATH}" >&5 -$as_echo "MODULE_PATH = ${MODULE_PATH}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - -# we just gave the user the chance to append values to these variables - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether additional libraries are needed" >&5 -$as_echo_n "checking whether additional libraries are needed... " >&6; } - -# Check whether --with-extra-libs was given. -if test "${with_extra_libs+set}" = set; then : - withval=$with_extra_libs; -EXTRA_LIBS="${withval}" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: EXTRA_LIBS = ${EXTRA_LIBS}" >&5 -$as_echo "EXTRA_LIBS = ${EXTRA_LIBS}" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi - - - - -############################################################################### -# Sanity checks, although redundant (useful when debugging this configure.ac)! -############################################################################### - -############################################################################### -# Compiler identification (sadly, it is necessary) -############################################################################### -psblas_cv_fc="" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU Fortran" >&5 -$as_echo_n "checking for GNU Fortran... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - - program main -#ifdef __GNUC__ - print *, "GCC!" -#else - this program will fail -#endif - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - psblas_cv_fc="gcc" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray Fortran" >&5 -$as_echo_n "checking for Cray Fortran... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - - program main -#ifdef _CRAYFTN - print *, "Cray FTN!" -#else - this program will fail -#endif - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - psblas_cv_fc="cray" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -if test x"$psblas_cv_fc" == "x" ; then - if eval "$MPIFC -qversion 2>&1 | grep XL 2>/dev/null" ; then - psblas_cv_fc="xlf" - # Some configurations of the XLF want "-WF," prepended to -D.. flags. - # TODO : discover the exact conditions when the usage of -WF is needed. - psblas_cv_define_prepend="-WF," - if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then - FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES" - fi - - # Note : there could be problems with old xlf compiler versions ( <10.1 ) - # since (as far as it is known to us) -WF, is not used in earlier versions. - # More problems could be undocumented yet. - elif eval "$MPIFC -V 2>&1 | grep Sun 2>/dev/null" ; then - # Sun compiler detection - - psblas_cv_fc="sun" - elif eval "$MPIFC -V 2>&1 | grep Portland 2>/dev/null" ; then - # Portland group compiler detection - - psblas_cv_fc="pg" - elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then - # Intel compiler identification - - psblas_cv_fc="ifc" - elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then - psblas_cv_fc="nag" - FC="$MPIFC" - else - psblas_cv_fc="" - # unsupported MPI Fortran compiler - { $as_echo "$as_me:${as_lineno-$LINENO}: Unknown Fortran compiler, proceeding with fingers crossed !" >&5 -$as_echo "$as_me: Unknown Fortran compiler, proceeding with fingers crossed !" >&6;} - fi -fi -if test "X$psblas_cv_fc" == "Xgcc" ; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent GNU Fortran" >&5 -$as_echo_n "checking for recent GNU Fortran... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - - program main -#if ( __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 ) || ( __GNUC__ > 4 ) - print *, "ok" -#else - this program will fail -#endif - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Sorry, we require GNU Fortran version 4.8.4 or later." >&5 -$as_echo "$as_me: Sorry, we require GNU Fortran version 4.8.4 or later." >&6;} - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Bailing out." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -fi - - -############################################################################### -# Linking, symbol mangling, and misc tests -############################################################################### - -# Note : This is functional to Make.inc rules and structure (see below). -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_void_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF - - -# Define for platforms with 64 bit (void * ) pointers -if test X"$ac_cv_sizeof_void_p" == X"8" ; then - CDEFINES="-DPtr64Bits $CDEFINES" -fi -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5 -$as_echo_n "checking for Fortran name-mangling scheme... " >&6; } -if ${ac_cv_fc_mangling+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.$ac_ext <<_ACEOF - subroutine foobar() - return - end - subroutine foo_bar() - return - end -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - mv conftest.$ac_objext cfortran_test.$ac_objext - - ac_save_LIBS=$LIBS - LIBS="cfortran_test.$ac_objext $LIBS $FCLIBS" - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_success=no - for ac_foobar in foobar FOOBAR; do - for ac_underscore in "" "_"; do - ac_func="$ac_foobar$ac_underscore" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_success=yes; break 2 -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - done - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - if test "$ac_success" = "yes"; then - case $ac_foobar in - foobar) - ac_case=lower - ac_foo_bar=foo_bar - ;; - FOOBAR) - ac_case=upper - ac_foo_bar=FOO_BAR - ;; - esac - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_success_extra=no - for ac_extra in "" "_"; do - ac_func="$ac_foo_bar$ac_underscore$ac_extra" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_success_extra=yes; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - if test "$ac_success_extra" = "yes"; then - ac_cv_fc_mangling="$ac_case case" - if test -z "$ac_underscore"; then - ac_cv_fc_mangling="$ac_cv_fc_mangling, no underscore" - else - ac_cv_fc_mangling="$ac_cv_fc_mangling, underscore" - fi - if test -z "$ac_extra"; then - ac_cv_fc_mangling="$ac_cv_fc_mangling, no extra underscore" - else - ac_cv_fc_mangling="$ac_cv_fc_mangling, extra underscore" - fi - else - ac_cv_fc_mangling="unknown" - fi - else - ac_cv_fc_mangling="unknown" - fi - - LIBS=$ac_save_LIBS - rm -rf conftest* - rm -f cfortran_test* -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compile a simple Fortran program -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5 -$as_echo "$ac_cv_fc_mangling" >&6; } - -if test "X$psblas_cv_fc" == X"pg" ; then - FC=$save_FC -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -pac_fc_case=${ac_cv_fc_mangling%%,*} -pac_fc_under=${ac_cv_fc_mangling#*,} -pac_fc_sec_under=${pac_fc_under#*,} -pac_fc_sec_under=${pac_fc_sec_under# } -pac_fc_under=${pac_fc_under%%,*} -pac_fc_under=${pac_fc_under# } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking defines for C/Fortran name interfaces" >&5 -$as_echo_n "checking defines for C/Fortran name interfaces... " >&6; } -if test "x$pac_fc_case" == "xlower case"; then - if test "x$pac_fc_under" == "xunderscore"; then - if test "x$pac_fc_sec_under" == "xno extra underscore"; then - pac_f_c_names="-DLowerUnderscore" - elif test "x$pac_fc_sec_under" == "xextra underscore"; then - pac_f_c_names="-DLowerDoubleUnderscore" - else - pac_f_c_names="-DUNKNOWN" - fi - elif test "x$pac_fc_under" == "xno underscore"; then - pac_f_c_names="-DLowerCase" - else - pac_f_c_names="-DUNKNOWN" - fi -elif test "x$pac_fc_case" == "xupper case"; then - if test "x$pac_fc_under" == "xunderscore"; then - if test "x$pac_fc_sec_under" == "xno extra underscore"; then - pac_f_c_names="-DUpperUnderscore" - elif test "x$pac_fc_sec_under" == "xextra underscore"; then - pac_f_c_names="-DUpperDoubleUnderscore" - else - pac_f_c_names="-DUNKNOWN" - fi - elif test "x$pac_fc_under" == "xno underscore"; then - pac_f_c_names="-DUpperCase" - else - pac_f_c_names="-DUNKNOWN" - fi -else - pac_f_c_names="-DUNKNOWN" -fi -CDEFINES="$pac_f_c_names $CDEFINES" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_f_c_names " >&5 -$as_echo " $pac_f_c_names " >&6; } - -############################################################################### -# Make.inc generation logic -############################################################################### -# Honor CFLAGS if they were specified explicitly, but --with-ccopt take precedence -if test "X$CCOPT" == "X" ; then - CCOPT="$CFLAGS"; -fi -if test "X$CCOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignements - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - CCOPT="-O3 $CCOPT" - - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - CCOPT="-O3 -qarch=auto $CCOPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - CCOPT="-O3 $CCOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - CCOPT="-fast $CCOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - CCOPT="-fast $CCOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - CCOPT="-O3 $CCOPT" - MPICC="cc" - elif test "X$psblas_cv_fc" == X"nag" ; then - # using GCC in conjunction with NAG. - CCOPT="-O2" - else - CCOPT="-O2 $CCOPT" - fi -fi -#CFLAGS="${CCOPT}" -if test "X$CXXOPT" == "X" ; then - CXXOPT="$CXXFLAGS"; -fi -if test "X$CXXOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignements - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - CXXOPT="-g -O3 $CXXOPT" - - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - CXXOPT="-O3 -qarch=auto $CXXOPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - CXXOPT="-O3 $CXXOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - CXXCOPT="-fast $CXXOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - CXXOPT="-fast $CXXOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - CXXOPT="-O3 $CXXOPT" - MPICXX="CC" - else - CXXOPT="-g -O3 $CXXOPT" - fi -fi - - -# Honor FCFLAGS if they were specified explicitly, but --with-fcopt take precedence -if test "X$FCOPT" == "X" ; then - FCOPT="$FCFLAGS"; -fi -if test "X$FCOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignations - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - FCOPT="-O3 $FCOPT" - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - FCOPT="-O3 -qarch=auto -qlanglvl=extended -qxlf2003=polymorphic:autorealloc $FCOPT" - FCFLAGS="-qhalt=e -qlanglvl=extended -qxlf2003=polymorphic:autorealloc $FCFLAGS" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - FCOPT="-O3 $FCOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - FCOPT="-fast $FCOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - FCOPT="-fast $FCOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - FCOPT="-O3 -em $FCOPT" - elif test "X$psblas_cv_fc" == X"nag" ; then - # NAG compiler .. - FCOPT="-O2 " - # NOTE : PG & Sun use -fast instead -O3 - else - FCOPT="-O2 $FCOPT" - fi -fi -if test "X$psblas_cv_fc" == X"nag" ; then - # Add needed options - FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" - EXTRA_OPT="-mismatch_all" -fi - - -# COPT,FCOPT are aliases for CFLAGS,FCFLAGS . - -############################################################################## -# Compilers variables selection -############################################################################## -FC=${FC} -CC=${CC} -CXX=${CXX} -CCOPT="$CCOPT $C99OPT" - - -############################################################################## -# Choice of our compilers, needed by Make.inc -############################################################################## -if test "X$psblas_cv_fc" == X"cray" -then - MODEXT=".mod" - FMFLAG="-I" - FIFLAG="-I" - BASEMODNAME=PSB_BASE_MOD - PRECMODNAME=PSB_PREC_MOD - METHDMODNAME=PSB_KRYLOV_MOD - UTILMODNAME=PSB_UTIL_MOD - -else - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules extension" >&5 -$as_echo_n "checking fortran 90 modules extension... " >&6; } -if ${ax_cv_f90_modext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -i=0 -while test \( -f tmpdir_$i \) -o \( -d tmpdir_$i \) ; do - i=`expr $i + 1` -done -mkdir tmpdir_$i -cd tmpdir_$i -cat > conftest.$ac_ext <<_ACEOF - - module conftest_module - contains - subroutine conftest_routine - write(*,'(a)') 'gotcha!' - end subroutine conftest_routine - end module conftest_module - -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - ax_cv_f90_modext=`ls | sed -n 's,conftest_module\.,,p'` - if test x$ax_cv_f90_modext = x ; then - ax_cv_f90_modext=`ls | sed -n 's,CONFTEST_MODULE\.,,p'` - if test x$ax_cv_f90_modext = x ; then - ax_cv_f90_modext=unknown - fi - fi - -else - ax_cv_f90_modext=unknown -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -cd .. -rm -fr tmpdir_$i -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modext" >&5 -$as_echo "$ax_cv_f90_modext" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking fortran 90 modules inclusion flag" >&5 -$as_echo_n "checking fortran 90 modules inclusion flag... " >&6; } -if ${ax_cv_f90_modflag+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -i=0 -while test \( -f tmpdir_$i \) -o \( -d tmpdir_$i \) ; do - i=`expr $i + 1` -done -mkdir tmpdir_$i -cd tmpdir_$i -ac_ext='f90'; -cat > conftest.$ac_ext <<_ACEOF - - module conftest_module - contains - subroutine conftest_routine - write(*,'(a)') 'gotcha!' - end subroutine conftest_routine - end module conftest_module - -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -cd ..; -ax_cv_f90_modflag="not found" -for ax_flag in "-I " "-M" "-p"; do - if test "$ax_cv_f90_modflag" = "not found" ; then - ax_save_FCFLAGS="$FCFLAGS" - FCFLAGS="$ax_save_FCFLAGS ${ax_flag}tmpdir_$i" - cat > conftest.$ac_ext <<_ACEOF - - program conftest_program - use conftest_module - call conftest_routine - end program conftest_program - -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - ax_cv_f90_modflag="$ax_flag" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - FCFLAGS="$ax_save_FCFLAGS" - fi -done -rm -fr tmpdir_$i -if test "$ax_cv_f90_modflag" = "not found" ; then - as_fn_error $? "unable to find compiler flag for modules inclusion" "$LINENO" 5 -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_f90_modflag" >&5 -$as_echo "$ax_cv_f90_modflag" >&6; } - MODEXT=".$ax_cv_f90_modext" - FMFLAG="${ax_cv_f90_modflag%% *}" - FIFLAG=-I - BASEMODNAME=psb_base_mod - PRECMODNAME=psb_prec_mod - METHDMODNAME=psb_krylov_mod - UTILMODNAME=psb_util_mod -fi - - -############################################################################## -# Choice of our compilers, needed by Make.inc -############################################################################## -if test "X$FLINK" == "X" ; then - FLINK=${MPF90} -fi -# Custom test : do we have a module or include for MPI Fortran interface? -if test x"$pac_cv_serial_mpi" == x"yes" ; then - FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; -else - PAC_FORTRAN_CHECK_HAVE_MPI_MOD_F08() - if test x"$pac_cv_mpi_f08" == x"yes" ; then - FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran MPI mod" >&5 -$as_echo_n "checking for Fortran MPI mod... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - - program test - use mpi - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - fi -fi - -FLINK="$MPIFC" -PAC_ARG_OPENMP() -if test x"$pac_cv_openmp" == x"yes" ; then - FDEFINES="$psblas_cv_define_prepend-DOPENMP $FDEFINES"; - CDEFINES="-DOPENMP $CDEFINES"; - FCOPT="$FCOPT $pac_cv_openmp_fcopt"; - CCOPT="$CCOPT $pac_cv_openmp_ccopt"; - FLINK="$FLINK $pac_cv_openmp_fcopt"; -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working installation of PSBLAS" >&5 -$as_echo_n "checking for working installation of PSBLAS... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_objext='o' - ac_ext='f90' - ac_fc="${MPIFC-$FC}"; - save_FCFLAGS="$FCFLAGS"; - save_LDFLAGS="$LDFLAGS"; -if test "x$pac_cv_psblas_incdir" != "x"; then - PSBLAS_INCLUDES="$FMFLAG$pac_cv_psblas_incdir" -elif test "x$pac_cv_psblas_dir" != "x"; then - PSBLAS_INCLUDES="$FMFLAG$pac_cv_psblas_dir/include" -fi -if test "x$pac_cv_psblas_moddir" != "x"; then - PSBLAS_INCLUDES="$FMFLAG$pac_cv_psblas_moddir $PSBLAS_INCLUDES" -elif test "x$pac_cv_psblas_dir" != "x"; then - PSBLAS_INCLUDES="$FMFLAG$pac_cv_psblas_dir/modules $PSBLAS_INCLUDES" -fi - FCFLAGS=" $PSBLAS_INCLUDES $save_FCFLAGS" -cat > conftest.$ac_ext <<_ACEOF - - program test - use psb_base_mod - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5 -$as_echo "yes." >&6; } -else - as_fn_error $? "no. Could not find working version of PSBLAS." "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -rm -f conftest* - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for version of PSBLAS" >&5 -$as_echo_n "checking for version of PSBLAS... " >&6; } -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -ac_exeext='' -ac_objext='o' -ac_ext='f90' -save_FCFLAGS=$FCFLAGS; -FCFLAGS=" $PSBLAS_INCLUDES $save_FCFLAGS" -save_LDFLAGS=$LDFLAGS; -## if test "x$pac_cv_psblas_libdir" != "x"; then -## dnl AC_MSG_NOTICE([psblas lib dir $pac_cv_psblas_libdir]) -## PSBLAS_LIBS="-L$pac_cv_psblas_libdir" -## elif test "x$pac_cv_psblas_dir" != "x"; then -## dnl AC_MSG_NOTICE([psblas dir $pac_cv_psblas_dir]) -## PSBLAS_LIBS="-L$pac_cv_psblas_dir/lib" -## fi -PSBLAS_LIBS="-lpsb_krylov -lpsb_prec -lpsb_util -lpsb_base -L$PSBLAS_LIBDIR" -LDFLAGS=" $PSBLAS_LIBS $save_LDFLAGS" - -ac_link='${MPIFC-$FC} -o conftest${ac_exeext} $FCFLAGS conftest.$ac_ext $LDFLAGS $LIBS 1>&5' - -cat > conftest.$ac_ext <<_ACEOF - - program test - use psb_base_mod, only : psb_version_major_ - print *,psb_version_major_ - end program test -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - pac_cv_psblas_major=`./conftest${ac_exeext} | sed 's/^ *//'` -else - pac_cv_psblas_major="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -cat > conftest.$ac_ext <<_ACEOF - - program test - use psb_base_mod, only : psb_version_minor_ - print *,psb_version_minor_ - end program test -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - pac_cv_psblas_minor=`./conftest${ac_exeext} | sed 's/^ *//'` -else - pac_cv_psblas_minor="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -cat > conftest.$ac_ext <<_ACEOF - - program test - use psb_base_mod, only : psb_patchlevel_ - print *,psb_patchlevel_ - end program test -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - pac_cv_psblas_patchlevel=`./conftest${ac_exeext} | sed 's/^ *//'` -else - pac_cv_psblas_patchlevel="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LDFLAGS="$save_LDFLAGS"; -FCFLAGS="$save_FCFLAGS"; - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Done" >&5 -$as_echo "Done" >&6; } -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -if test "x$pac_cv_psblas_major" == "xunknown"; then - as_fn_error $? "PSBLAS version major \"$pac_cv_psblas_major\"." "$LINENO" 5 -fi -if test "x$pac_cv_psblas_minor" == "xunknown"; then - as_fn_error $? "PSBLAS version minor \"$pac_cv_psblas_minor\"." "$LINENO" 5 -fi -if test "x$pac_cv_psblas_patchlevel" == "xunknown"; then - as_fn_error $? "PSBLAS patchlevel \"$pac_cv_psblas_patchlevel\"." "$LINENO" 5 -fi -if (( $pac_cv_psblas_major < 3 )) || - ( (( $pac_cv_psblas_major == 3 )) && (( $pac_cv_psblas_minor < 7 ))) ; then - as_fn_error $? "I need at least PSBLAS version 3.7." "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: Am configuring with PSBLAS version $pac_cv_psblas_major.$pac_cv_psblas_minor.$pac_cv_psblas_patchlevel." >&5 -$as_echo "$as_me: Am configuring with PSBLAS version $pac_cv_psblas_major.$pac_cv_psblas_minor.$pac_cv_psblas_patchlevel." >&6;} -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what size in bytes we want for local indices and data" >&5 -$as_echo_n "checking what size in bytes we want for local indices and data... " >&6; } - -# Check whether --with-ipk was given. -if test "${with_ipk+set}" = set; then : - withval=$with_ipk; pac_cv_ipk_size=$withval; -else - pac_cv_ipk_size=4; - -fi - -if test x"$pac_cv_ipk_size" == x"4" || test x"$pac_cv_ipk_size" == x"8" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Size: $pac_cv_ipk_size." >&5 -$as_echo "Size: $pac_cv_ipk_size." >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Unsupported value for IPK: $pac_cv_ipk_size, defaulting to 4." >&5 -$as_echo "Unsupported value for IPK: $pac_cv_ipk_size, defaulting to 4." >&6; } - pac_cv_ipk_size=4; -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what size in bytes we want for global indices and data" >&5 -$as_echo_n "checking what size in bytes we want for global indices and data... " >&6; } - -# Check whether --with-lpk was given. -if test "${with_lpk+set}" = set; then : - withval=$with_lpk; pac_cv_lpk_size=$withval; -else - pac_cv_lpk_size=8; - -fi - -if test x"$pac_cv_lpk_size" == x"4" || test x"$pac_cv_lpk_size" == x"8"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Size: $pac_cv_lpk_size." >&5 -$as_echo "Size: $pac_cv_lpk_size." >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Unsupported value for LPK: $pac_cv_lpk_size, defaulting to 8." >&5 -$as_echo "Unsupported value for LPK: $pac_cv_lpk_size, defaulting to 8." >&6; } - pac_cv_lpk_size=8; -fi - - -# Defaults for IPK/LPK -if test x"$pac_cv_ipk_size" == x"" ; then - pac_cv_ipk_size=4 -fi -if test x"$pac_cv_lpk_size" == x"" ; then - pac_cv_lpk_size=8 -fi -# Enforce sensible combination -if (( $pac_cv_lpk_size < $pac_cv_ipk_size )); then - { $as_echo "$as_me:${as_lineno-$LINENO}: Invalid combination of size specs IPK ${pac_cv_ipk_size} LPK ${pac_cv_lpk_size}. " >&5 -$as_echo "$as_me: Invalid combination of size specs IPK ${pac_cv_ipk_size} LPK ${pac_cv_lpk_size}. " >&6;}; - { $as_echo "$as_me:${as_lineno-$LINENO}: Forcing equal values" >&5 -$as_echo "$as_me: Forcing equal values" >&6;} - pac_cv_lpk_size=$pac_cv_ipk_size; -fi -FDEFINES="$psblas_cv_define_prepend-DIPK${pac_cv_ipk_size} $FDEFINES"; -FDEFINES="$psblas_cv_define_prepend-DLPK${pac_cv_lpk_size} $FDEFINES"; -CDEFINES="-DIPK${pac_cv_ipk_size} -DLPK${pac_cv_lpk_size} $CDEFINES"; -if test x"$pac_cv_lpk_size" == x8"" ; then - CXXDEFINES="-DBIT64 $CXXDEFINES"; -fi - -############################################################################### -# Parachute rules for ar and ranlib ... (could cause problems) -############################################################################### - -if test "X$AR" == "X" ; then - AR="ar" -fi - -if test "X$RANLIB" == "X" ; then - RANLIB="ranlib" -fi - -# This should be portable -AR="${AR} -cur" - - -############################################################################### -# NOTE : -# Missing stuff : -# In the case the detected fortran compiler is ifort, icc or gcc -# should be valid options. -# The same for pg (Portland Group compilers). -############################################################################### - -# -# Tests for support of various Fortran features; some of them are critical, -# some optional -# - -# -# Critical features -# - -ac_exeext='' -ac_ext='f90' -ac_link='${MPIFC-$FC} -o conftest${ac_exeext} $FCFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran EXTENDS" >&5 -$as_echo_n "checking support for Fortran EXTENDS... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program conftest - type foo - integer :: i - end type foo - type, extends(foo) :: bar - integer j - end type bar - type(bar) :: barvar -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for EXTENDS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran CLASS TBP" >&5 -$as_echo_n "checking support for Fortran CLASS TBP... " >&6; } -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -module conftest_mod - type foo - integer :: i - contains - procedure, pass(a) :: doit - procedure, pass(a) :: getit - end type foo - - private doit,getit -contains - subroutine doit(a) - class(foo) :: a - - a%i = 1 - write(*,*) 'FOO%DOIT base version' - end subroutine doit - function getit(a) result(res) - class(foo) :: a - integer :: res - - res = a%i - end function getit - -end module conftest_mod -program conftest - use conftest_mod - type(foo) :: foovar -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran SOURCE= allocation" >&5 -$as_echo_n "checking support for Fortran SOURCE= allocation... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program xtt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - class(foo), allocatable :: fooab - type(new_foo) :: nfv - integer :: info - - allocate(fooab, source=nfv, stat=info) - -end program xtt -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran MOVE_ALLOC intrinsic" >&5 -$as_echo_n "checking support for Fortran MOVE_ALLOC intrinsic... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_ext='f90'; - cat > conftest.$ac_ext <<_ACEOF - program test_move_alloc - integer, allocatable :: a(:), b(:) - allocate(a(3)) - call move_alloc(a, b) - print *, allocated(a), allocated(b) - print *, b - end program test_move_alloc -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran ISO_C_BINDING module" >&5 -$as_echo_n "checking support for Fortran ISO_C_BINDING module... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program conftest - use iso_c_binding -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran SAME_TYPE_AS" >&5 -$as_echo_n "checking support for Fortran SAME_TYPE_AS... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program stt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - type(foo) :: foov - type(new_foo) :: nfv1, nfv2 - - - write(*,*) 'foov == nfv1? ', same_type_as(foov,nfv1) - write(*,*) 'nfv2 == nfv1? ', same_type_as(nfv2,nfv1) -end program stt -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for SAME_TYPE_AS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran EXTENDS_TYPE_OF" >&5 -$as_echo_n "checking support for Fortran EXTENDS_TYPE_OF... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program xtt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - type(foo) :: foov - type(new_foo) :: nfv1, nfv2 - - write(*,*) 'nfv1 extends foov? ', extends_type_of(nfv1,foov) -end program xtt -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran MOLD= allocation" >&5 -$as_echo_n "checking support for Fortran MOLD= allocation... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program xtt - type foo - integer :: i - end type foo - type, extends(foo) :: new_foo - integer :: j - end type new_foo - class(foo), allocatable :: fooab - type(new_foo) :: nfv - integer :: info - - allocate(fooab, mold=nfv, stat=info) - -end program xtt -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for MOLD= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran VOLATILE" >&5 -$as_echo_n "checking support for Fortran VOLATILE... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program conftest - integer, volatile :: i, j -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for VOLATILE" "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran ISO_C_BINDING module" >&5 -$as_echo_n "checking support for Fortran ISO_C_BINDING module... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program conftest - use iso_c_binding -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8." "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for ISO_FORTRAN_ENV" >&5 -$as_echo_n "checking support for ISO_FORTRAN_ENV... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - - program test - use iso_fortran_env - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for ISO_FORTRAN_ENV" "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran FINAL" >&5 -$as_echo_n "checking support for Fortran FINAL... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -module conftest_mod - type foo - integer :: i - contains - final :: destroy_foo - end type foo - - private destroy_foo -contains - subroutine destroy_foo(a) - type(foo) :: a - ! Just a test - end subroutine destroy_foo -end module conftest_mod -program conftest - use conftest_mod - type(foo) :: foovar -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - as_fn_error $? "Sorry, cannot build PSBLAS without support for FINAL" "$LINENO" 5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -# -# Optional features -# - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking test GENERIC interfaces" >&5 -$as_echo_n "checking test GENERIC interfaces... " >&6; } -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='F90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -module conftest - - interface foo - subroutine i_sub_foo(v) - integer, intent(inout) :: v(:) - end subroutine i_sub_foo - end interface foo - - interface bar - procedure i_sub_foo - end interface bar - -end module conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking support for Fortran FLUSH statement" >&5 -$as_echo_n "checking support for Fortran FLUSH statement... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - ac_exeext='' - ac_ext='f90' - ac_fc=${MPIFC-$FC}; - cat > conftest.$ac_ext <<_ACEOF - -program conftest - integer :: iunit=10 - open(10) - write(10,*) 'Test ' - flush(10) - close(10) -end program conftest -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -############################################################################### -# Additional pathname stuff (yes, it is redundant and confusing...) -############################################################################### - -# -I -if test x"$INCLUDEPATH" != "x" ; then - FINCLUDES="$FINCLUDES $INCLUDEPATH" - CINCLUDES="$CINCLUDES $INCLUDEPATH" -fi - -# -L -if test x"$LIBRARYPATH" != "x" ; then - FINCLUDES="$FINCLUDES $LIBRARYPATH" -fi - -# -I -if test x"$MODULE_PATH" != "x" ; then - FINCLUDES="$FINCLUDES $MODULE_PATH" -fi - - -############################################################################### -# BLAS library presence checks -############################################################################### - -# Note : The libmkl.a (Intel Math Kernel Library) library could be used, too. -# It is sufficient to specify it as -lmkl in the CLIBS or FLIBS or LIBS -# and specify its path adjusting -L/path in CFLAGS. - -# Right now it is a matter of user's taste when linking custom applications. -# But PSBLAS examples could take advantage of these libraries, too. -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -############################################################################### -# BLAS library presence checks -############################################################################### - -# Note : The libmkl.a (Intel Math Kernel Library) library could be used, too. -# It is sufficient to specify it as -lmkl in the CLIBS or FLIBS or LIBS -# and specify its path adjusting -L/path in CFLAGS. - -# Right now it is a matter of user's taste when linking custom applications. -# But PSBLAS examples could take advantage of these libraries, too. - - - -pac_blas_ok=no - - -# Check whether --with-blas was given. -if test "${with_blas+set}" = set; then : - withval=$with_blas; -fi - -case $with_blas in - yes | "") ;; - no) pac_blas_ok=disable ;; - -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;; - *) BLAS_LIBS="-l$with_blas" ;; -esac - -# Check whether --with-blasdir was given. -if test "${with_blasdir+set}" = set; then : - withval=$with_blasdir; -fi - -case $with_blasdir in - "") ;; - *) if test -d $with_blasdir; then - BLAS_LIBDIR="-L$with_blasdir"; - fi ;; -esac -# Get fortran linker names of BLAS functions to check for. -#AC_FC_FUNC(sgemm) -#AC_FC_FUNC(dgemm) - -pac_blas_save_LIBS="$LIBS" -#LIBS="$LIBS $FLIBS" -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - -# First, check BLAS_LIBS environment variable -if test $pac_blas_ok = no; then -if test "x$BLAS_LIBS" != x; then - save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $BLAS_LIBDIR $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in $BLAS_LIBS" >&5 -$as_echo_n "checking for sgemm in $BLAS_LIBS... " >&6; } - cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - pac_blas_ok=yes -else - BLAS_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_blas_ok" >&5 -$as_echo "$pac_blas_ok" >&6; } - LIBS="$save_LIBS" -fi -fi - -LIBS="$BLAS_LIBDIR $save_LIBS " -# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) -if test $pac_blas_ok = no; then - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5 -$as_echo_n "checking for ATL_xerbla in -latlas... " >&6; } -if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-latlas $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ATL_xerbla (); -int -main () -{ -return ATL_xerbla (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_atlas_ATL_xerbla=yes -else - ac_cv_lib_atlas_ATL_xerbla=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5 -$as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; } -if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then : - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lf77blas" >&5 -$as_echo_n "checking for sgemm in -lf77blas... " >&6; } -if ${ac_cv_lib_f77blas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lf77blas -latlas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_f77blas_sgemm=yes -else - ac_cv_lib_f77blas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_f77blas_sgemm" >&5 -$as_echo "$ac_cv_lib_f77blas_sgemm" >&6; } -if test "x$ac_cv_lib_f77blas_sgemm" = xyes; then : - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5 -$as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; } -if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcblas -lf77blas -latlas $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cblas_dgemm (); -int -main () -{ -return cblas_dgemm (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cblas_cblas_dgemm=yes -else - ac_cv_lib_cblas_cblas_dgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 -$as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; } -if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then : - pac_blas_ok=yes - BLAS_LIBS="-lcblas -lf77blas -latlas $BLAS_LIBDIR" -fi - -fi - -fi - - -fi -if test $pac_blas_ok = no; then - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -lsatlas" >&5 -$as_echo_n "checking for ATL_xerbla in -lsatlas... " >&6; } -if ${ac_cv_lib_satlas_ATL_xerbla+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsatlas $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ATL_xerbla (); -int -main () -{ -return ATL_xerbla (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_satlas_ATL_xerbla=yes -else - ac_cv_lib_satlas_ATL_xerbla=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_ATL_xerbla" >&5 -$as_echo "$ac_cv_lib_satlas_ATL_xerbla" >&6; } -if test "x$ac_cv_lib_satlas_ATL_xerbla" = xyes; then : - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsatlas" >&5 -$as_echo_n "checking for sgemm in -lsatlas... " >&6; } -if ${ac_cv_lib_satlas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsatlas -lsatlas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_satlas_sgemm=yes -else - ac_cv_lib_satlas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_sgemm" >&5 -$as_echo "$ac_cv_lib_satlas_sgemm" >&6; } -if test "x$ac_cv_lib_satlas_sgemm" = xyes; then : - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lsatlas" >&5 -$as_echo_n "checking for cblas_dgemm in -lsatlas... " >&6; } -if ${ac_cv_lib_satlas_cblas_dgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsatlas -lsatlas $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cblas_dgemm (); -int -main () -{ -return cblas_dgemm (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_satlas_cblas_dgemm=yes -else - ac_cv_lib_satlas_cblas_dgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_satlas_cblas_dgemm" >&5 -$as_echo "$ac_cv_lib_satlas_cblas_dgemm" >&6; } -if test "x$ac_cv_lib_satlas_cblas_dgemm" = xyes; then : - pac_blas_ok=yes - BLAS_LIBS="-lsatlas $BLAS_LIBDIR" -fi - -fi - -fi - - -fi - -# BLAS in PhiPACK libraries? (requires generic BLAS lib, too) -if test $pac_blas_ok = no; then - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 -$as_echo_n "checking for sgemm in -lblas... " >&6; } -if ${ac_cv_lib_blas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_blas_sgemm=yes -else - ac_cv_lib_blas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 -$as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgemm in -ldgemm" >&5 -$as_echo_n "checking for dgemm in -ldgemm... " >&6; } -if ${ac_cv_lib_dgemm_dgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldgemm -lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call dgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_dgemm_dgemm=yes -else - ac_cv_lib_dgemm_dgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dgemm_dgemm" >&5 -$as_echo "$ac_cv_lib_dgemm_dgemm" >&6; } -if test "x$ac_cv_lib_dgemm_dgemm" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsgemm" >&5 -$as_echo_n "checking for sgemm in -lsgemm... " >&6; } -if ${ac_cv_lib_sgemm_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsgemm -lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_sgemm_sgemm=yes -else - ac_cv_lib_sgemm_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sgemm_sgemm" >&5 -$as_echo "$ac_cv_lib_sgemm_sgemm" >&6; } -if test "x$ac_cv_lib_sgemm_sgemm" = xyes; then : - pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas $BLAS_LIBDIR" -fi - -fi - -fi - -fi - - -# BLAS in OpenBLAS? -if test $pac_blas_ok = no; then - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lopenblas" >&5 -$as_echo_n "checking for sgemm in -lopenblas... " >&6; } -if ${ac_cv_lib_openblas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lopenblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_openblas_sgemm=yes -else - ac_cv_lib_openblas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_openblas_sgemm" >&5 -$as_echo "$ac_cv_lib_openblas_sgemm" >&6; } -if test "x$ac_cv_lib_openblas_sgemm" = xyes; then : - pac_blas_ok=yes;BLAS_LIBS="-lopenblas $BLAS_LIBDIR" -fi - -fi -# BLAS in Alpha CXML library? -if test $pac_blas_ok = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lcxml" >&5 -$as_echo_n "checking for sgemm in -lcxml... " >&6; } -if ${ac_cv_lib_cxml_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcxml $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_cxml_sgemm=yes -else - ac_cv_lib_cxml_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cxml_sgemm" >&5 -$as_echo "$ac_cv_lib_cxml_sgemm" >&6; } -if test "x$ac_cv_lib_cxml_sgemm" = xyes; then : - pac_blas_ok=yes;BLAS_LIBS="-lcxml $BLAS_LIBDIR" -fi - -fi - -# BLAS in Alpha DXML library? (now called CXML, see above) -if test $pac_blas_ok = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -ldxml" >&5 -$as_echo_n "checking for sgemm in -ldxml... " >&6; } -if ${ac_cv_lib_dxml_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldxml $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_dxml_sgemm=yes -else - ac_cv_lib_dxml_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dxml_sgemm" >&5 -$as_echo "$ac_cv_lib_dxml_sgemm" >&6; } -if test "x$ac_cv_lib_dxml_sgemm" = xyes; then : - pac_blas_ok=yes;BLAS_LIBS="-ldxml $BLAS_LIBDIR" -fi - - -fi - -# BLAS in Sun Performance library? -if test $pac_blas_ok = no; then - if test "x$GCC" != xyes; then # only works with Sun CC - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5 -$as_echo_n "checking for acosp in -lsunmath... " >&6; } -if ${ac_cv_lib_sunmath_acosp+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsunmath $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call acosp - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_sunmath_acosp=yes -else - ac_cv_lib_sunmath_acosp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5 -$as_echo "$ac_cv_lib_sunmath_acosp" >&6; } -if test "x$ac_cv_lib_sunmath_acosp" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lsunperf" >&5 -$as_echo_n "checking for sgemm in -lsunperf... " >&6; } -if ${ac_cv_lib_sunperf_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsunperf -lsunmath $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_sunperf_sgemm=yes -else - ac_cv_lib_sunperf_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunperf_sgemm" >&5 -$as_echo "$ac_cv_lib_sunperf_sgemm" >&6; } -if test "x$ac_cv_lib_sunperf_sgemm" = xyes; then : - BLAS_LIBS="-xlic_lib=sunperf -lsunmath $BLAS_LIBDIR" - pac_blas_ok=yes -fi - -fi - - - fi -fi - -# BLAS in SCSL library? (SGI/Cray Scientific Library) -if test $pac_blas_ok = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lscs" >&5 -$as_echo_n "checking for sgemm in -lscs... " >&6; } -if ${ac_cv_lib_scs_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lscs $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_scs_sgemm=yes -else - ac_cv_lib_scs_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_scs_sgemm" >&5 -$as_echo "$ac_cv_lib_scs_sgemm" >&6; } -if test "x$ac_cv_lib_scs_sgemm" = xyes; then : - pac_blas_ok=yes; BLAS_LIBS="-lscs $BLAS_LIBDIR" -fi - -fi - -# BLAS in SGIMATH library? -if test $pac_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5 -$as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcomplib.sgimath $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call $sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath $BLAS_LIBDIR" -fi - -fi - -# BLAS in IBM ESSL library? (requires generic BLAS lib, too) -if test $pac_blas_ok = no; then - as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5 -$as_echo_n "checking for $sgemm in -lblas... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call $sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lessl" >&5 -$as_echo_n "checking for sgemm in -lessl... " >&6; } -if ${ac_cv_lib_essl_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lessl -lblas $FLIBS $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_essl_sgemm=yes -else - ac_cv_lib_essl_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_essl_sgemm" >&5 -$as_echo "$ac_cv_lib_essl_sgemm" >&6; } -if test "x$ac_cv_lib_essl_sgemm" = xyes; then : - pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas $BLAS_LIBDIR" -fi - -fi - - fi -# BLAS in generic BLAS library? -if test $pac_blas_ok = no; then - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 -$as_echo_n "checking for sgemm in -lblas... " >&6; } -if ${ac_cv_lib_blas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_blas_sgemm=yes -else - ac_cv_lib_blas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 -$as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBBLAS 1 -_ACEOF - - LIBS="-lblas $LIBS" - -else - pac_blas_ok=yes;BLAS_LIBS="-lblas $BLAS_LIBDIR" -fi - -fi - -# BLAS linked to by default? (happens on some supercomputers) -if test $pac_blas_ok = no; then - cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - pac_blas_ok=yes -else - BLAS_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -# Generic BLAS library? -if test $pac_blas_ok = no; then - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sgemm in -lblas" >&5 -$as_echo_n "checking for sgemm in -lblas... " >&6; } -if ${ac_cv_lib_blas_sgemm+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblas $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call sgemm - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - ac_cv_lib_blas_sgemm=yes -else - ac_cv_lib_blas_sgemm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blas_sgemm" >&5 -$as_echo "$ac_cv_lib_blas_sgemm" >&6; } -if test "x$ac_cv_lib_blas_sgemm" = xyes; then : - pac_blas_ok=yes; BLAS_LIBS="-lblas $BLAS_LIBDIR" -fi - -fi - - -LIBS="$pac_blas_save_LIBS" - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$pac_blas_ok" = xyes; then - -$as_echo "#define HAVE_BLAS 1" >>confdefs.h - - : -else - pac_blas_ok=no - as_fn_error $? "Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)" "$LINENO" 5 -fi - - - -pac_lapack_ok=no - - -# Check whether --with-lapack was given. -if test "${with_lapack+set}" = set; then : - withval=$with_lapack; -fi - -case $with_lapack in - yes | "") ;; - no) pac_lapack_ok=disable ;; - -* | */* | *.a | *.so | *.so.* | *.o) LAPACK_LIBS="$with_lapack" ;; - *) LAPACK_LIBS="-l$with_lapack" ;; -esac - -# Get fortran linker name of LAPACK function to check for. -#AC_FC_FUNC(cheev) - -# We cannot use LAPACK if BLAS is not found -if test "x$pac_blas_ok" != xyes; then - pac_lapack_ok=noblas -fi - -# First, check LAPACK_LIBS environment variable -if test "x$LAPACK_LIBS" != x; then - save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in $LAPACK_LIBS" >&5 -$as_echo_n "checking for cheev in $LAPACK_LIBS... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - cat > conftest.$ac_ext <&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pac_lapack_ok=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* - LIBS="$save_LIBS" - if test pac_lapack_ok = no; then - LAPACK_LIBS="" - fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -# LAPACK linked to by default? (is sometimes included in BLAS lib) -if test $pac_lapack_ok = no; then - save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in default libs" >&5 -$as_echo_n "checking for cheev in default libs... " >&6; } - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - cat > conftest.$ac_ext <&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pac_lapack_ok=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* - LIBS="$save_LIBS" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -# Generic LAPACK library? -for lapack in lapack lapack_rs6k; do - if test $pac_lapack_ok = no; then - save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" - ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - - as_ac_Lib=`$as_echo "ac_cv_lib_$lapack''_cheev" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cheev in -l$lapack" >&5 -$as_echo_n "checking for cheev in -l$lapack... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$lapack $FLIBS $LIBS" -cat > conftest.$ac_ext <<_ACEOF - program main - call cheev - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - eval "$as_ac_Lib=yes" -else - eval "$as_ac_Lib=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : - pac_lapack_ok=yes; LAPACK_LIBS="-l$lapack" -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - LIBS="$save_LIBS" - fi -done - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$pac_lapack_ok" = xyes; then - FDEFINES="$psblas_cv_define_prepend-DHAVE_LAPACK $FDEFINES" - : -else - pac_lapack_ok=no - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -############################################################################### -# BLACS library presence checks -############################################################################### -#AC_LANG([C]) -#if test x"$pac_cv_serial_mpi" == x"no" ; then -#save_FC="$FC"; -#save_CC="$CC"; -#FC="$MPIFC"; -#CC="$MPICC"; -#PAC_CHECK_BLACS -#FC="$save_FC"; -#CC="$save_CC"; -#fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnumake" >&5 -$as_echo_n "checking for gnumake... " >&6; } -MAKE=${MAKE:-make} - -if $MAKE --version 2>&1 | grep -e"GNU Make" >/dev/null; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - psblas_make_gnumake='yes' -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - psblas_make_gnumake='no' -fi - -############################################################################### -# Auxiliary packages -############################################################################### - - -# Check whether --with-metis was given. -if test "${with_metis+set}" = set; then : - withval=$with_metis; psblas_cv_metis=$withval -else - psblas_cv_metis='-lmetis' -fi - - -# Check whether --with-metisincfile was given. -if test "${with_metisincfile+set}" = set; then : - withval=$with_metisincfile; psblas_cv_metisincfile=$withval -else - psblas_cv_metisincfile='metis.h' -fi - - -# Check whether --with-metisdir was given. -if test "${with_metisdir+set}" = set; then : - withval=$with_metisdir; psblas_cv_metisdir=$withval -else - psblas_cv_metisdir='' -fi - - -# Check whether --with-metisincdir was given. -if test "${with_metisincdir+set}" = set; then : - withval=$with_metisincdir; psblas_cv_metisincdir=$withval -else - psblas_cv_metisincdir='' -fi - - -# Check whether --with-metislibdir was given. -if test "${with_metislibdir+set}" = set; then : - withval=$with_metislibdir; psblas_cv_metislibdir=$withval -else - psblas_cv_metislibdir='' -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -SAVE_LIBS="$LIBS" -SAVE_CPPFLAGS="$CPPFLAGS" -if test "x$psblas_cv_metisdir" != "x"; then - METIS_LIBDIR="-L$psblas_cv_metisdir" - LIBS="-L$psblas_cv_metisdir $LIBS" - METIS_INCLUDES="-I$psblas_cv_metisdir" - CPPFLAGS="$METIS_INCLUDES $CPPFLAGS" -fi -if test "x$psblas_cv_metisincdir" != "x"; then - METIS_INCLUDES="-I$psblas_cv_metisincdir" - CPPFLAGS="$METIS_INCLUDES $CPPFLAGS" -fi -if test "x$psblas_cv_metislibdir" != "x"; then - LIBS="-L$psblas_cv_metislibdir $LIBS" - METIS_LIBDIR="-L$psblas_cv_metislibdir" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: metis dir $psblas_cv_metisdir" >&5 -$as_echo "$as_me: metis dir $psblas_cv_metisdir" >&6;} -for ac_header in limits.h $psblas_cv_metisincfile -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - pac_metis_header_ok=yes -else - pac_metis_header_ok=no; METIS_INCLUDES="" -fi - -done - -if test "x$pac_metis_header_ok" == "xno" ; then - unset ac_cv_header_metis_h - METIS_INCLUDES="-I$psblas_cv_metisdir/include -I$psblas_cv_metisdir/Include " - CPPFLAGS="$METIS_INCLUDES $SAVE_CPPFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for metis_h in $METIS_INCLUDES" >&5 -$as_echo_n "checking for metis_h in $METIS_INCLUDES... " >&6; } - for ac_header in limits.h $psblas_cv_metisincfile -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - pac_metis_header_ok=yes -else - pac_metis_header_ok=no; METIS_INCLUDES="" -fi - -done - -fi -if test "x$pac_metis_header_ok" == "xno" ; then - unset ac_cv_header_metis_h - METIS_INCLUDES="-I$psblas_cv_metisdir/UFconfig -I$psblas_cv_metisdir/METIS/Include -I$psblas_cv_metisdir/METIS/Include" - CPPFLAGS="$METIS_INCLUDES $SAVE_CPPFLAGS" - for ac_header in limits.h $psblas_cv_metisincfile -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - pac_metis_header_ok=yes -else - pac_metis_header_ok=no; METIS_INCLUDES="" -fi - -done - -fi - -if test "x$pac_metis_header_ok" == "xyes" ; then - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS integer size" >&5 -$as_echo_n "checking for METIS integer size... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include "$psblas_cv_metisincfile" - void main(){ - printf("%d\n",IDXTYPEWIDTH); - } - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pac_cv_metis_idx=`./conftest${ac_exeext} | sed 's/^ *//'` -else - pac_cv_metis_idx="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_cv_metis_idx" >&5 -$as_echo "$pac_cv_metis_idx" >&6; } - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -if test "x$pac_metis_header_ok" == "xyes" ; then - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS real size" >&5 -$as_echo_n "checking for METIS real size... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include "$psblas_cv_metisincfile" - void main(){ - printf("%d\n",REALTYPEWIDTH); - } - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pac_cv_metis_real=`./conftest${ac_exeext} | sed 's/^ *//'` -else - pac_cv_metis_real="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_cv_metis_real" >&5 -$as_echo "$pac_cv_metis_real" >&6; } - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -if test "x$pac_metis_header_ok" = "xyes" ; then - psblas_cv_metis_includes="$METIS_INCLUDES" - METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" - LIBS="$METIS_LIBS -lm $LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 -$as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char METIS_PartGraphKway (); -int -main () -{ -return METIS_PartGraphKway (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; -else - psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 -$as_echo "$pac_metis_lib_ok" >&6; } - if test "x$pac_metis_lib_ok" = "xno" ; then - METIS_LIBDIR="-L$psblas_cv_metisdir/Lib -L$psblas_cv_metisdir/lib" - METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" - LIBS="$METIS_LIBS -lm $SAVE_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 -$as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char METIS_PartGraphKway (); -int -main () -{ -return METIS_PartGraphKway (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; -else - psblas_cv_have_metis=no;pac_metis_lib_ok=no; METIS_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 -$as_echo "$pac_metis_lib_ok" >&6; } - fi - - if test "x$pac_metis_lib_ok" = "xno" ; then - METIS_LIBDIR="-L$psblas_cv_metisdir/METIS/Lib -L$psblas_cv_metisdir/METIS/Lib" - METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" - LIBS="$METIS_LIBS -lm $SAVE_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 -$as_echo_n "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char METIS_PartGraphKway (); -int -main () -{ -return METIS_PartGraphKway (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - psblas_cv_have_metis=yes;pac_metis_lib_ok="yes"; -else - psblas_cv_have_metis=no;pac_metis_lib_ok="no"; METIS_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 -$as_echo "$pac_metis_lib_ok" >&6; } - fi - fi - - if test "x$pac_metis_lib_ok" = "xyes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_SetDefaultOptions in $LIBS" >&5 -$as_echo_n "checking for METIS_SetDefaultOptions in $LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char METIS_SetDefaultOptions (); -int -main () -{ -return METIS_SetDefaultOptions (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; -else - psblas_cv_have_metis=no;pac_metis_lib_ok="no. Unusable METIS version, sorry."; METIS_LIBS="" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_metis_lib_ok" >&5 -$as_echo "$pac_metis_lib_ok" >&6; } - -fi - -LIBS="$SAVE_LIBS"; -CPPFLAGS="$SAVE_CPPFLAGS"; - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Compatibility between metis and LPK" >&5 -$as_echo_n "checking Compatibility between metis and LPK... " >&6; } -if test "x$pac_cv_lpk_size" == "x4" ; then - if test "x$pac_cv_metis_idx" == "x64" ; then - psblas_cv_have_metis="no"; - fi - fi - if test "x$pac_cv_lpk_size" == "x8" ; then - if test "x$pac_cv_metis_idx" == "x32" ; then - psblas_cv_have_metis="no"; - fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $psblas_cv_have_metis" >&5 -$as_echo "$psblas_cv_have_metis" >&6; } - -if test "x$pac_cv_metis_idx" == "xunknown" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Unknown METIS bitsize." >&5 -$as_echo "$as_me: Unknown METIS bitsize." >&6;} - $psblas_cv_have_metis = "no"; -fi -if test "x$pac_cv_metis_real" == "xunknown" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Unknown METIS REAL bitsize." >&5 -$as_echo "$as_me: Unknown METIS REAL bitsize." >&6;} - $psblas_cv_have_metis = "no"; -fi -if test "x$psblas_cv_have_metis" == "xyes" ; then - FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $psblas_cv_define_prepend-DMETIS_$pac_cv_metis_idx $psblas_cv_define_prepend-DMETIS_REAL_$pac_cv_metis_real $FDEFINES" - CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES -DMETIS_$pac_cv_metis_idx -DMETIS_REAL_$pac_cv_metis_real" - METISINCFILE=$psblas_cv_metisincfile -fi - - - -# Check whether --with-mumps was given. -if test "${with_mumps+set}" = set; then : - withval=$with_mumps; amg4psblas_cv_mumps=$withval -else - amg4psblas_cv_mumps='-lsmumps -ldmumps -lcmumps -lzmumps -lmumps_common -lpord' -fi - - -# Check whether --with-mumpsdir was given. -if test "${with_mumpsdir+set}" = set; then : - withval=$with_mumpsdir; amg4psblas_cv_mumpsdir=$withval -else - amg4psblas_cv_mumpsdir='' -fi - - - -# Check whether --with-mumpsincdir was given. -if test "${with_mumpsincdir+set}" = set; then : - withval=$with_mumpsincdir; amg4psblas_cv_mumpsincdir=$withval -else - amg4psblas_cv_mumpsincdir='' -fi - - - -# Check whether --with-mumpsmoddir was given. -if test "${with_mumpsmoddir+set}" = set; then : - withval=$with_mumpsmoddir; amg4psblas_cv_mumpsmoddir=$withval -else - amg4psblas_cv_mumpsmoddir='' -fi - - - -# Check whether --with-mumpslibdir was given. -if test "${with_mumpslibdir+set}" = set; then : - withval=$with_mumpslibdir; amg4psblas_cv_mumpslibdir=$withval -else - amg4psblas_cv_mumpslibdir='' -fi - - -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -save_LIBS="$LIBS" -save_FC="$FC" -FC=${MPIFC} -if test "x$amg4psblas_cv_mumpsincdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: mumps dir $amg4psblas_cv_mumpsincdir" >&5 -$as_echo "$as_me: mumps dir $amg4psblas_cv_mumpsincdir" >&6;} - MUMPS_INCLUDES="-I$amg4psblas_cv_mumpsincdir" -elif test "x$amg4psblas_cv_mumpsdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: mumps dir $amg4psblas_cv_mumpsdir" >&5 -$as_echo "$as_me: mumps dir $amg4psblas_cv_mumpsdir" >&6;} - MUMPS_INCLUDES="-I$amg4psblas_cv_mumpsdir" -fi -if test "x$amg4psblas_cv_mumpsmoddir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: mumps dir $amg4psblas_cv_mumpsmoddir" >&5 -$as_echo "$as_me: mumps dir $amg4psblas_cv_mumpsmoddir" >&6;} - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsmoddir" -elif test "x$amg4psblas_cv_mumpsdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: mumps dir $amg4psblas_cv_mumpsdir" >&5 -$as_echo "$as_me: mumps dir $amg4psblas_cv_mumpsdir" >&6;} - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsdir" -fi -if test "x$amg4psblas_cv_mumpslibdir" != "x"; then - MUMPS_LIBS="-L$amg4psblas_cv_mumpslibdir" -elif test "x$amg4psblas_cv_mumpsdir" != "x"; then - MUMPS_LIBS="-L$amg4psblas_cv_mumpsdir" -fi - -LIBS="$MUMPS_LIBS $save_LIBS $EXTRA_LIBS" -CPPFLAGS="$MUMPS_INCLUDES $save_CPPFLAGS" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_fn_c_check_header_mongrel "$LINENO" "dmumps_c.h" "ac_cv_header_dmumps_c_h" "$ac_includes_default" -if test "x$ac_cv_header_dmumps_c_h" = xyes; then : - pac_mumps_header_ok=yes -else - pac_mumps_header_ok=no; MUMPS_INCLUDES="" -fi - - -if test "x$pac_mumps_header_ok" == "xno" ; then - unset ac_cv_header_dmumps_c_h - MUMPS_INCLUDES="-I$amg4psblas_cv_mumpsdir/include" - CPPFLAGS="$MUMPS_INCLUDES $save_CPPFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "dmumps_c.h" "ac_cv_header_dmumps_c_h" "$ac_includes_default" -if test "x$ac_cv_header_dmumps_c_h" = xyes; then : - pac_mumps_header_ok=yes -else - pac_mumps_header_ok=no; MUMPS_INCLUDES="" -fi - - -fi -if test "x$pac_mumps_header_ok" == "xno" ; then - unset ac_cv_header_dmumps_c_h - MUMPS_INCLUDES="-I$amg4psblas_cv_mumpsdir/Include" - CPPFLAGS="$MUMPS_INCLUDES $save_CPPFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "dmumps_c.h" "ac_cv_header_dmumps_c_h" "$ac_includes_default" -if test "x$ac_cv_header_dmumps_c_h" = xyes; then : - pac_mumps_header_ok=yes -else - pac_mumps_header_ok=no; MUMPS_INCLUDES="" -fi - - -fi - -ac_ext=${ac_fc_srcext-f} -ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' -ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_fc_compiler_gnu - -ac_objext='o' -ac_ext='f90' -ac_fc="${MPIFC-$FC}"; -save_FCFLAGS="$FCFLAGS"; -FCFLAGS="$MUMPS_MODULES $save_FCFLAGS" -cat > conftest.$ac_ext <<_ACEOF - - program test - use dmumps_struc_def - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fmods_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_MODULES"; -else - pac_mumps_fmods_ok=no; MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test "x$pac_mumps_fmods_ok" == "xno" ; then - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsdir/include" - FCFLAGS="$MUMPS_MODULES $save_FCFLAGS" - - cat > conftest.$ac_ext <<_ACEOF - - program test - use dmumps_struc_def - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fmods_ok=yes amg4psblas_cv_mumpsmoddir="$MUMPS_MODULES"; -else - pac_mumps_fmods_ok=no; MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -if test "x$pac_mumps_fmods_ok" == "xno" ; then - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsdir/Include" - FCFLAGS="$MUMPS_MODULES $save_FCFLAGS" - - cat > conftest.$ac_ext <<_ACEOF - - program test - use dmumps_struc_def - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fmods_ok=yes amg4psblas_cv_mumpsmoddir="$MUMPS_MODULES"; -else - pac_mumps_fmods_ok=no; MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -if test "x$pac_mumps_fmods_ok" == "xno" ; then - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsdir/modules" - FCFLAGS="$MUMPS_MODULES $save_FCFLAGS" - - cat > conftest.$ac_ext <<_ACEOF - - program test - use dmumps_struc_def - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fmods_ok=yes amg4psblas_cv_mumpsmoddir="$MUMPS_MODULES"; -else - pac_mumps_fmods_ok=no; MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -if test "x$pac_mumps_fmods_ok" == "xno" ; then - MUMPS_MODULES="$FMFLAG$amg4psblas_cv_mumpsdir/Modules" - FCFLAGS="$MUMPS_MODULES $save_FCFLAGS" - - cat > conftest.$ac_ext <<_ACEOF - - program test - use dmumps_struc_def - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fmods_ok=yes amg4psblas_cv_mumpsmoddir="$MUMPS_MODULES"; -else - pac_mumps_fmods_ok=no; MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test "x$pac_mumps_fmods_ok" == "xno" ; then - if test "x$amg4psblas_cv_mumpsincdir" != "x"; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsincdir" - elif test "x$amg4psblas_cv_mumpsdir" != "x"; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsincdir" - fi - - FCFLAGS="$MUMPS_FINCLUDES $save_FCFLAGS" - cat > conftest.$ac_ext <<_ACEOF - - program test - include 'dmumps_struc.h' - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fincs_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_FINCLUDES"; -else - pac_mumps_fincs_ok=no; MUMPS_FINCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - if test "x$pac_mumps_fincs_ok" == "xno" ; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsdir/include" - FCFLAGS="$MUMPS_FINCLUDES $save_FCFLAGS" - cat > conftest.$ac_ext <<_ACEOF - - program test - include 'dmumps_struc.h' - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fincs_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_FINCLUDES"; -else - pac_mumps_fincs_ok=no; MUMPS_FINCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "x$pac_mumps_fincs_ok" == "xno" ; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsdir/Include" - FCFLAGS="$MUMPS_FINCLUDES $save_FCFLAGS" - cat > conftest.$ac_ext <<_ACEOF - - program test - include 'dmumps_struc.h' - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fincs_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_FINCLUDES"; -else - pac_mumps_fincs_ok=no; MUMPS_FINCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "x$pac_mumps_fincs_ok" == "xno" ; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsdir/modules" - FCFLAGS="$MUMPS_FINCLUDES $save_FCFLAGS" - cat > conftest.$ac_ext <<_ACEOF - - program test - include 'dmumps_struc.h' - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fincs_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_FINCLUDES"; -else - pac_mumps_fincs_ok=no; MUMPS_FINCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test "x$pac_mumps_fincs_ok" == "xno" ; then - MUMPS_FINCLUDES="$FIFLAG$amg4psblas_cv_mumpsdir/Modules" - FCFLAGS="$MUMPS_FINCLUDES $save_FCFLAGS" - cat > conftest.$ac_ext <<_ACEOF - - program test - include 'dmumps_struc.h' - end program test -_ACEOF -if ac_fn_fc_try_compile "$LINENO"; then : - pac_mumps_fincs_ok=yes; amg4psblas_cv_mumpmoddir="$MUMPS_FINCLUDES"; -else - pac_mumps_fincs_ok=no; MUMPS_FINCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - -fi - -if test "x$pac_mumps_fmods_ok" == "xyes" || test "x$pac_mumps_fincs_ok" == "xyes" ; then - MUMPS_LIBS="$amg4psblas_cv_mumps $MUMPS_LIBS" - LIBS="$MUMPS_LIBS $save_LIBS $EXTRA_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dmumps in $MUMPS_LIBS" >&5 -$as_echo_n "checking for dmumps in $MUMPS_LIBS... " >&6; } - cat > conftest.$ac_ext <<_ACEOF - program main - call dmumps - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - amg4psblas_cv_have_mumps=yes;pac_mumps_lib_ok=yes; -else - amg4psblas_cv_have_mumps=no;pac_mumps_lib_ok=no; - MUMPS_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "x$pac_mumps_lib_ok" == "xno" ; then - MUMPS_LIBS="$amg4psblas_cv_mumps -L$amg4psblas_cv_mumpsdir/lib"; - LIBS="$MUMPS_LIBS $save_LIBS $EXTRA_LIBS"; - cat > conftest.$ac_ext <<_ACEOF - program main - call dmumps - end -_ACEOF -if ac_fn_fc_try_link "$LINENO"; then : - amg4psblas_cv_have_mumps=yes;pac_mumps_lib_ok=yes; -else - amg4psblas_cv_have_mumps=no;pac_mumps_lib_ok=no; - MUMPS_LIBS="";MUMPS_MODULES="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_mumps_lib_ok" >&5 -$as_echo "$pac_mumps_lib_ok" >&6; } -fi - - LIBS="$save_LIBS"; - CPPFLAGS="$save_CPPFLAGS"; - FCFLAGS="$save_FCFLAGS"; - FC="$save_FC"; - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# -# 1. Enable even with LPK=8, internally it will check if -# the problem size fits into 4 bytes, very likely since we -# are mostly using MUMPS at coarse level. -# -if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then - if test "x$pac_cv_psblas_lpk" == "x8" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. " >&5 -$as_echo "$as_me: PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. " >&6;} - fi - if test "x$pac_mumps_fmods_ok" == "xyes" ; then - FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_MODULES_ $MUMPS_MODULES $FDEFINES" - MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_MODULES" - elif test "x$pac_mumps_fincs_ok" == "xyes" ; then - FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_INCLUDES_ $MUMPS_FINCLUDES $FDEFINES" - MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_INCLUDES" - else - # This should not happen - MUMPS_FLAGS="" - MUMPS_LIBS="" - fi -else - MUMPS_FLAGS="" - MUMPS_LIBS="" -fi - - -# Check whether --with-umfpack was given. -if test "${with_umfpack+set}" = set; then : - withval=$with_umfpack; amg4psblas_cv_umfpack=$withval -else - amg4psblas_cv_umfpack='-lumfpack -lamd' -fi - - -# Check whether --with-umfpackdir was given. -if test "${with_umfpackdir+set}" = set; then : - withval=$with_umfpackdir; amg4psblas_cv_umfpackdir=$withval -else - amg4psblas_cv_umfpackdir='' -fi - - -# Check whether --with-umfpackincdir was given. -if test "${with_umfpackincdir+set}" = set; then : - withval=$with_umfpackincdir; amg4psblas_cv_umfpackincdir=$withval -else - amg4psblas_cv_umfpackincdir='' -fi - - -# Check whether --with-umfpacklibdir was given. -if test "${with_umfpacklibdir+set}" = set; then : - withval=$with_umfpacklibdir; amg4psblas_cv_umfpacklibdir=$withval -else - amg4psblas_cv_umfpacklibdir='' -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -save_LIBS="$LIBS" -save_CPPFLAGS="$CPPFLAGS" -if test "x$amg4psblas_cv_umfpackincdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: umfp include dir $amg4psblas_cv_umfpackincdir" >&5 -$as_echo "$as_me: umfp include dir $amg4psblas_cv_umfpackincdir" >&6;} - UMF_INCLUDES="-I$amg4psblas_cv_umfpackincdir" -elif test "x$amg4psblas_cv_umfpackdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: umfp dir $amg4psblas_cv_umfpackdir" >&5 -$as_echo "$as_me: umfp dir $amg4psblas_cv_umfpackdir" >&6;} - UMF_INCLUDES="-I$amg4psblas_cv_umfpackdir" -fi -CPPFLAGS="$UMF_INCLUDES $CPPFLAGS" -ac_fn_c_check_header_mongrel "$LINENO" "umfpack.h" "ac_cv_header_umfpack_h" "$ac_includes_default" -if test "x$ac_cv_header_umfpack_h" = xyes; then : - pac_umf_header_ok=yes -else - pac_umf_header_ok=no; UMF_INCLUDES="" -fi - - -if test "x$amg4psblas_cv_umfpacklibdir" != "x"; then - LIBS="-L$amg4psblas_cv_umfpacklibdir $LIBS $EXTRA_LIBS" - UMF_LIBDIR="-L$amg4psblas_cv_umfpacklibdir" -elif test "x$amg4psblas_cv_umfpackdir" != "x"; then - LIBS="-L$amg4psblas_cv_umfpackdir $LIBS $EXTRA_LIBS" - UMF_LIBDIR="-L$amg4psblas_cv_umfpackdir" -fi -if test "x$pac_umf_header_ok" == "xno" ; then - unset ac_cv_header_umfpack_h - UMF_INCLUDES="-I$amg4psblas_cv_umfpackdir" - CPPFLAGS="$UMF_INCLUDES $SAVE_CPPFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "umfpack.h" "ac_cv_header_umfpack_h" "$ac_includes_default" -if test "x$ac_cv_header_umfpack_h" = xyes; then : - pac_umf_header_ok=yes -else - pac_umf_header_ok=no; UMF_INCLUDES="" -fi - - -fi -if test "x$pac_umf_header_ok" == "xno" ; then - unset ac_cv_header_umfpack_h - UMF_INCLUDES="-I$amg4psblas_cv_umfpackdir/include -I$amg4psblas_cv_umfpackdir/Include " - CPPFLAGS="$UMF_INCLUDES $SAVE_CPPFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umfpack_di_symbolic in $UMF_INCLUDES" >&5 -$as_echo_n "checking for umfpack_di_symbolic in $UMF_INCLUDES... " >&6; } - ac_fn_c_check_header_mongrel "$LINENO" "umfpack.h" "ac_cv_header_umfpack_h" "$ac_includes_default" -if test "x$ac_cv_header_umfpack_h" = xyes; then : - pac_umf_header_ok=yes -else - pac_umf_header_ok=no; UMF_INCLUDES="" -fi - - -fi -if test "x$pac_umf_header_ok" == "xno" ; then - unset ac_cv_header_umfpack_h - UMF_INCLUDES="-I$amg4psblas_cv_umfpackdir/UFconfig -I$amg4psblas_cv_umfpackdir/UMFPACK/Include -I$amg4psblas_cv_umfpackdir/AMD/Include" - CPPFLAGS="$UMF_INCLUDES $SAVE_CPPFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "umfpack.h" "ac_cv_header_umfpack_h" "$ac_includes_default" -if test "x$ac_cv_header_umfpack_h" = xyes; then : - pac_umf_header_ok=yes -else - pac_umf_header_ok=no; UMF_INCLUDES="" -fi - - -fi - - -if test "x$pac_umf_header_ok" == "xyes" ; then - UMF_LIBS="$amg4psblas_cv_umfpack $UMF_LIBDIR" - LIBS="$UMF_LIBS -lm $LIBS $EXTRA_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umfpack_di_symbolic in $UMF_LIBS" >&5 -$as_echo_n "checking for umfpack_di_symbolic in $UMF_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char umfpack_di_symbolic (); -int -main () -{ -return umfpack_di_symbolic (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_umfpack=yes;pac_umf_lib_ok=yes; -else - amg4psblas_cv_have_umfpack=no;pac_umf_lib_ok=no; UMF_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_umf_lib_ok" >&5 -$as_echo "$pac_umf_lib_ok" >&6; } - if test "x$pac_umf_lib_ok" == "xno" ; then - UMF_LIBDIR="-L$amg4psblas_cv_umfpackdir/Lib -L$amg4psblas_cv_umfpackdir/lib" - UMF_LIBS="$amg4psblas_cv_umfpack $UMF_LIBDIR -lm $SAVE_LIBS $EXTRA_LIBS" - LIBS="$UMF_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umfpack_di_symbolic in $UMF_LIBS" >&5 -$as_echo_n "checking for umfpack_di_symbolic in $UMF_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char umfpack_di_symbolic (); -int -main () -{ -return umfpack_di_symbolic (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_umfpack=yes;pac_umf_lib_ok=yes; -else - amg4psblas_cv_have_umfpack=no;pac_umf_lib_ok=no; UMF_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_umf_lib_ok" >&5 -$as_echo "$pac_umf_lib_ok" >&6; } - fi - if test "x$pac_umf_lib_ok" == "xno" ; then - UMF_LIBDIR="-L$amg4psblas_cv_umfpackdir/AMD/Lib -L$amg4psblas_cv_umfpackdir/UMFPACK/Lib" - UMF_LIBS="$amg4psblas_cv_umfpack $UMF_LIBDIR -lm $SAVE_LIBS $EXTRA_LIBS" - LIBS="$UMF_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umfpack_di_symbolic in $UMF_LIBS" >&5 -$as_echo_n "checking for umfpack_di_symbolic in $UMF_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char umfpack_di_symbolic (); -int -main () -{ -return umfpack_di_symbolic (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_umfpack=yes;pac_umf_lib_ok=yes; -else - amg4psblas_cv_have_umfpack=no;pac_umf_lib_ok=no; UMF_LIBS="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_umf_lib_ok" >&5 -$as_echo "$pac_umf_lib_ok" >&6; } - fi -fi -LIBS="$SAVE_LIBS"; -CPPFLAGS="$SAVE_CPPFLAGS"; -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -if test "x$amg4psblas_cv_have_umfpack" == "xyes" ; then - UMF_FLAGS="-DHave_UMF_ $UMF_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_UMF_ $FDEFINES" -else - UMF_FLAGS="" -fi - - -# Check whether --with-superlu was given. -if test "${with_superlu+set}" = set; then : - withval=$with_superlu; amg4psblas_cv_superlu=$withval -else - amg4psblas_cv_superlu='-lsuperlu' -fi - - -# Check whether --with-superludir was given. -if test "${with_superludir+set}" = set; then : - withval=$with_superludir; amg4psblas_cv_superludir=$withval -else - amg4psblas_cv_superludir='' -fi - - -# Check whether --with-superluincdir was given. -if test "${with_superluincdir+set}" = set; then : - withval=$with_superluincdir; amg4psblas_cv_superluincdir=$withval -else - amg4psblas_cv_superluincdir='' -fi - - -# Check whether --with-superlulibdir was given. -if test "${with_superlulibdir+set}" = set; then : - withval=$with_superlulibdir; amg4psblas_cv_superlulibdir=$withval -else - amg4psblas_cv_superlulibdir='' -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -save_LIBS="$LIBS" -save_CPPFLAGS="$CPPFLAGS" -if test "x$amg4psblas_cv_superluincdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: slu include dir $amg4psblas_cv_superluincdir" >&5 -$as_echo "$as_me: slu include dir $amg4psblas_cv_superluincdir" >&6;} - SLU_INCLUDES="-I$amg4psblas_cv_superluincdir" -elif test "x$amg4psblas_cv_superludir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: slu dir $amg4psblas_cv_superludir" >&5 -$as_echo "$as_me: slu dir $amg4psblas_cv_superludir" >&6;} - SLU_INCLUDES="-I$amg4psblas_cv_superludir" -fi -if test "x$amg4psblas_cv_superlulibdir" != "x"; then - SLU_LIBS="-L$amg4psblas_cv_superlulibdir" -elif test "x$amg4psblas_cv_superludir" != "x"; then - SLU_LIBS="-L$amg4psblas_cv_superludir" -fi - -LIBS="$SLU_LIBS $LIBS" -CPPFLAGS="$SLU_INCLUDES $save_CPPFLAGS" -for ac_header in slu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "slu_ddefs.h" "ac_cv_header_slu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_slu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SLU_DDEFS_H 1 -_ACEOF - pac_slu_header_ok=yes -else - pac_slu_header_ok=no; SLU_INCLUDES="" -fi - -done - -if test "x$pac_slu_header_ok" == "xno" ; then - unset ac_cv_header_slu_ddefs_h - SLU_INCLUDES="-I$amg4psblas_cv_superludir/include " - CPPFLAGS="$SLU_INCLUDES $save_CPPFLAGS" - - for ac_header in slu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "slu_ddefs.h" "ac_cv_header_slu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_slu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SLU_DDEFS_H 1 -_ACEOF - pac_slu_header_ok=yes -else - pac_slu_header_ok=no; SLU_INCLUDES="" -fi - -done - -fi -if test "x$pac_slu_header_ok" == "xno" ; then - unset ac_cv_header_slu_ddefs_h - SLU_INCLUDES="-I$amg4psblas_cv_superludir/Include " - CPPFLAGS="$SLU_INCLUDES $save_CPPFLAGS" - - for ac_header in slu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "slu_ddefs.h" "ac_cv_header_slu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_slu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SLU_DDEFS_H 1 -_ACEOF - pac_slu_header_ok=yes -else - pac_slu_header_ok=no; SLU_INCLUDES="" -fi - -done - -fi - -if test "x$pac_slu_header_ok" == "xyes" ; then - SLU_LIBS="$amg4psblas_cv_superlu $SLU_LIBS" - LIBS="$SLU_LIBS -lm $save_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_malloc in $SLU_LIBS" >&5 -$as_echo_n "checking for superlu_malloc in $SLU_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc (); -int -main () -{ -return superlu_malloc (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superlu=yes;pac_slu_lib_ok=yes; -else - amg4psblas_cv_have_superlu=no;pac_slu_lib_ok=no; SLU_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "x$pac_slu_lib_ok" == "xno" ; then - SLU_LIBS="$amg4psblas_cv_superlu -L$amg4psblas_cv_superludir/lib"; - LIBS="$SLU_LIBS -lm $save_LIBS"; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc (); -int -main () -{ -return superlu_malloc (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superlu=yes;pac_slu_lib_ok=yes; -else - amg4psblas_cv_have_superlu=no;pac_slu_lib_ok=no; SLU_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$pac_slu_lib_ok" == "xno" ; then - SLU_LIBS="$amg4psblas_cv_superlu -L$amg4psblas_cv_superludir/lib64"; - LIBS="$SLU_LIBS -lm $save_LIBS"; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc (); -int -main () -{ -return superlu_malloc (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superlu=yes;pac_slu_lib_ok=yes; -else - amg4psblas_cv_have_superlu=no;pac_slu_lib_ok=no; SLU_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_slu_lib_ok" >&5 -$as_echo "$pac_slu_lib_ok" >&6; } -fi -if test "x$pac_slu_header_ok" == "xyes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu version 5" >&5 -$as_echo_n "checking for superlu version 5... " >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include "slu_ddefs.h" - int testdslu() - { SuperMatrix AC, *L, *U; - int *perm_r, *perm_c, *etree, panel_size, permc_spec, relax, info; - superlu_options_t options; SuperLUStat_t stat; - GlobalLU_t Glu; - dgstrf(&options, &AC, relax, panel_size, etree, - NULL, 0, perm_c, perm_r, L, U, &Glu, &stat, &info); - - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; pac_slu_version="5"; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; pac_slu_version="4"; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi - -LIBS="$save_LIBS"; -CPPFLAGS="$save_CPPFLAGS"; -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -if test "x$amg4psblas_cv_have_superlu" == "xyes" ; then - SLU_FLAGS="-DHave_SLU_ -DSLU_VERSION_$pac_slu_version $SLU_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_SLU_ $FDEFINES" -else - SLU_FLAGS="" -fi - - -# Check whether --with-superludist was given. -if test "${with_superludist+set}" = set; then : - withval=$with_superludist; amg4psblas_cv_superludist=$withval -else - amg4psblas_cv_superludist='-lsuperlu_dist' -fi - - -# Check whether --with-superludistdir was given. -if test "${with_superludistdir+set}" = set; then : - withval=$with_superludistdir; amg4psblas_cv_superludistdir=$withval -else - amg4psblas_cv_superludistdir='' -fi - - - -# Check whether --with-superludistincdir was given. -if test "${with_superludistincdir+set}" = set; then : - withval=$with_superludistincdir; amg4psblas_cv_superludistincdir=$withval -else - amg4psblas_cv_superludistincdir='' -fi - - - -# Check whether --with-superludistlibdir was given. -if test "${with_superludistlibdir+set}" = set; then : - withval=$with_superludistlibdir; amg4psblas_cv_superludistlibdir=$withval -else - amg4psblas_cv_superludistlibdir='' -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -save_LIBS="$LIBS" -save_CPPFLAGS="$CPPFLAGS" -save_CC="$CC" -CC=${MPICC} -CPP="${CC} -E" -if test "x$amg4psblas_cv_superludistincdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: sludist dir $amg4psblas_cv_superludistincdir" >&5 -$as_echo "$as_me: sludist dir $amg4psblas_cv_superludistincdir" >&6;} - SLUDIST_INCLUDES="-I$amg4psblas_cv_superludistincdir" -elif test "x$amg4psblas_cv_superludistdir" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: sludist dir $amg4psblas_cv_superludistdir" >&5 -$as_echo "$as_me: sludist dir $amg4psblas_cv_superludistdir" >&6;} - SLUDIST_INCLUDES="-I$amg4psblas_cv_superludistdir" -fi -if test "x$amg4psblas_cv_superludistlibdir" != "x"; then - SLUDIST_LIBS="-L$amg4psblas_cv_superludistlibdir" -elif test "x$amg4psblas_cv_superludistdir" != "x"; then - SLUDIST_LIBS="-L$amg4psblas_cv_superludistdir" -fi - -LIBS="$SLUDIST_LIBS $save_LIBS" -CPPFLAGS="$SLUDIST_INCLUDES $save_CPPFLAGS" - -for ac_header in superlu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "superlu_ddefs.h" "ac_cv_header_superlu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_superlu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SUPERLU_DDEFS_H 1 -_ACEOF - pac_sludist_header_ok=yes -else - pac_sludist_header_ok=no; SLUDIST_INCLUDES="" -fi - -done - -if test "x$pac_sludist_header_ok" == "xno" ; then - unset ac_cv_header_superlu_ddefs_h - SLUDIST_INCLUDES="-I$amg4psblas_cv_superludistdir/include" - CPPFLAGS="$SLUDIST_INCLUDES $save_CPPFLAGS" - - for ac_header in superlu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "superlu_ddefs.h" "ac_cv_header_superlu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_superlu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SUPERLU_DDEFS_H 1 -_ACEOF - pac_sludist_header_ok=yes -else - pac_sludist_header_ok=no; SLUDIST_INCLUDES=""; SLUDIST_LIBS=""; -fi - -done - -fi -if test "x$pac_sludist_header_ok" == "xno" ; then - unset ac_cv_header_superlu_ddefs_h - SLUDIST_INCLUDES="-I$amg4psblas_cv_superludistdir/Include" - CPPFLAGS="$SLUDIST_INCLUDES $save_CPPFLAGS" - - for ac_header in superlu_ddefs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "superlu_ddefs.h" "ac_cv_header_superlu_ddefs_h" "$ac_includes_default" -if test "x$ac_cv_header_superlu_ddefs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SUPERLU_DDEFS_H 1 -_ACEOF - pac_sludist_header_ok=yes -else - pac_sludist_header_ok=no; SLUDIST_INCLUDES=""; SLUDIST_LIBS=""; -fi - -done - -fi - -if test "x$pac_sludist_header_ok" == "xyes" ; then - SLUDIST_LIBS="$amg4psblas_cv_superludist $SLUDIST_LIBS" - LIBS="$SLUDIST_LIBS -lm $save_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_malloc_dist in $SLUDIST_LIBS" >&5 -$as_echo_n "checking for superlu_malloc_dist in $SLUDIST_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc_dist (); -int -main () -{ -return superlu_malloc_dist (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superludist=yes;pac_sludist_lib_ok=yes; -else - amg4psblas_cv_have_superludist=no;pac_sludist_lib_ok=no; - SLUDIST_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "x$pac_sludist_lib_ok" == "xno" ; then - SLUDIST_LIBS="$amg4psblas_cv_superludist -L$amg4psblas_cv_superludistdir/lib"; - LIBS="$SLUDIST_LIBS -lm $save_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_malloc_dist in $SLUDIST_LIBS" >&5 -$as_echo_n "checking for superlu_malloc_dist in $SLUDIST_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc_dist (); -int -main () -{ -return superlu_malloc_dist (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superludist=yes;pac_sludist_lib_ok=yes; -else - amg4psblas_cv_have_superludist=no;pac_sludist_lib_ok=no; - SLUDIST_LIBS=""; -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - if test "x$pac_sludist_lib_ok" == "xno" ; then - SLUDIST_LIBS="$amg4psblas_cv_superludist -L$amg4psblas_cv_superludistdir/lib64"; - LIBS="$SLUDIST_LIBS -lm $save_LIBS"; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_malloc_dist in $SLUDIST_LIBS" >&5 -$as_echo_n "checking for superlu_malloc_dist in $SLUDIST_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char superlu_malloc_dist (); -int -main () -{ -return superlu_malloc_dist (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_have_superludist=yes;pac_sludist_lib_ok=yes; -else - amg4psblas_cv_have_superludist=no;pac_sludist_lib_ok=no; - SLUDIST_LIBS="";SLUDIST_INCLUDES="" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pac_sludist_lib_ok $SLUDIST_LIBS" >&5 -$as_echo "$pac_sludist_lib_ok $SLUDIST_LIBS" >&6; } -fi - -if test "x$pac_sludist_lib_ok" == "xyes" ; then - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - ac_cc=${MPICC-$CC} - ac_exeext=""; - CPPFLAGS="$SLUDIST_INCLUDES $save_CPPFLAGS" - LIBS="$SLUDIST_LIBS -lm $save_LIBS"; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - - void main() - { int i=SUPERLU_DIST_MAJOR_VERSION; - printf("%d\n",i); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_superludist_major=`./conftest${ac_exeext} | sed 's/^ *//'` -else - amg4psblas_cv_superludist_major="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - - void main() - { int i=SUPERLU_DIST_MINOR_VERSION; - printf("%d\n",i); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - amg4psblas_cv_superludist_minor=`./conftest${ac_exeext} | sed 's/^ *//'` -else - amg4psblas_cv_superludist_minor="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - if test "x$amg4psblas_cv_superludist_major" == "xunknown" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_dist version 4" >&5 -$as_echo_n "checking for superlu_dist version 4... " >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - ac_cc=${MPICC-$CC} - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - #include "superlu_ddefs.h" - int testdslud() - { LUstruct_t *LUstruct; - int n; - LUstructInit(n, LUstruct); - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; amg4psblas_cv_superludist_major="4"; amg4psblas_cv_superludist_minor=""; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; amg4psblas_cv_superludist_major="3"; amg4psblas_cv_superludist_minor=""; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - if test "x$amg4psblas_cv_superludist_major" == "x4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for superlu_dist version 5" >&5 -$as_echo_n "checking for superlu_dist version 5... " >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - ac_cc=${MPICC-$CC} - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - #include "superlu_ddefs.h" - int testdslud() - { superlu_dist_options_t options; - int n; - set_default_options_dist(&options); - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; amg4psblas_cv_superludist_major="5"; amg4psblas_cv_superludist_minor=""; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; amg4psblas_cv_superludist_major="4"; amg4psblas_cv_superludist_minor=""; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: SuperLU_dist version $amg4psblas_cv_superludist_major.$amg4psblas_cv_superludist_minor." >&5 -$as_echo "$as_me: SuperLU_dist version $amg4psblas_cv_superludist_major.$amg4psblas_cv_superludist_minor." >&6;} - - else - SLUDIST_LIBS=""; - SLUDIST_INCLUDES=""; - fi - LIBS="$save_LIBS"; - CPPFLAGS="$save_CPPFLAGS"; - CC="$save_CC"; - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -if test "x$amg4psblas_cv_have_superludist" == "xyes" ; then - pac_sludist_version="$amg4psblas_cv_superludist_major$amg4psblas_cv_superludist_minor"; - { $as_echo "$as_me:${as_lineno-$LINENO}: Configuring with SuperLU_DIST version flag $pac_sludist_version" >&5 -$as_echo "$as_me: Configuring with SuperLU_DIST version flag $pac_sludist_version" >&6;} - SLUDIST_FLAGS="" - SLUDIST_FLAGS="-DHave_SLUDist_ -DSLUD_VERSION_="$pac_sludist_version" $SLUDIST_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_SLUDIST_ $FDEFINES" -else - SLUDIST_FLAGS="" -fi - -############################################## -FINCLUDES="$PSBLAS_INCLUDES" - -AMGFDEFINES="$FDEFINES" -AMGCDEFINES="$CDEFINES" -AMGCXXDEFINES="$CXXDEFINES" - -LIBDIR=lib -BASELIBNAME=libpsb_base.a -PRECLIBNAME=libpsb_prec.a -METHDLIBNAME=libpsb_krylov.a -UTILLIBNAME=libpsb_util.a -AMGLIBNAME=libamg_prec.a - -COMPILERULES=' -PSBLDLIBS=$(LAPACK) $(BLAS) $(METIS_LIB) $(AMD_LIB) $(LIBS) -CXXDEFINES=$(PSBCXXDEFINES) -CDEFINES=$(PSBCDEFINES) -FDEFINES=$(PSBFDEFINES) - - -# These should be portable rules, arent they? -.c.o: - $(CC) $(CCOPT) $(CINCLUDES) $(CDEFINES) -c $< -o $@ -.f90.o: - $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ -.F90.o: - $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@ -.cpp.o: - $(CXX) $(CXXOPT) $(CXXINCLUDES) $(CXXDEFINES) -c $< -o $@' -############################################################################### -# Variable substitutions : the Make.inc.in will have these @VARIABLES@ -# substituted. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -############################################################################### -# the following files will be created by Automake - -ac_config_files="$ac_config_files Make_n.inc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by AMG4PSBLAS $as_me 1.0.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -AMG4PSBLAS config.status 1.0.0 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Make_n.inc") CONFIG_FILES="$CONFIG_FILES Make_n.inc" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. If GNU make was not used, consider - re-running the configure script with MAKE=\"gmake\" (or whatever is - necessary). You can also try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - -############################################################################### - -{ $as_echo "$as_me:${as_lineno-$LINENO}: - ${PACKAGE_NAME} ${amg4psblas_cv_version} has been configured as follows: - - PSBLAS library : ${PSBLAS_DIR} - MUMPS detected : ${amg4psblas_cv_have_mumps} - SuperLU detected : ${amg4psblas_cv_have_superlu} - SuperLU_Dist detected : ${amg4psblas_cv_have_superludist} - UMFPack detected : ${amg4psblas_cv_have_umfpack} - - If you are satisfied, run 'make' to build ${PACKAGE_NAME} and its documentation; otherwise - type ./configure --help=short for a complete list of configure options specific to ${PACKAGE_NAME}. -" >&5 -$as_echo "$as_me: - ${PACKAGE_NAME} ${amg4psblas_cv_version} has been configured as follows: - - PSBLAS library : ${PSBLAS_DIR} - MUMPS detected : ${amg4psblas_cv_have_mumps} - SuperLU detected : ${amg4psblas_cv_have_superlu} - SuperLU_Dist detected : ${amg4psblas_cv_have_superludist} - UMFPack detected : ${amg4psblas_cv_have_umfpack} - - If you are satisfied, run 'make' to build ${PACKAGE_NAME} and its documentation; otherwise - type ./configure --help=short for a complete list of configure options specific to ${PACKAGE_NAME}. -" >&6;} - -############################################################################### - diff --git a/configure_n.ac b/configure_n.ac deleted file mode 100755 index ccebf414..00000000 --- a/configure_n.ac +++ /dev/null @@ -1,976 +0,0 @@ -dnl $Id$ - -dnl Process this file with autoconf to produce a configure script. -dnl -dnl usage : aclocal -I config/ && autoconf && ./configure && make - -dnl then : VAR=VAL ./configure - -dnl In some configurations (AIX) the next line is needed: -dnl MPIFC=mpxlf95 ./configure - -dnl then : ./configure VAR=VAL -dnl then : ./configure --help=short -dnl then : ./configure --help - -dnl the PSBLAS modules get this task difficult to accomplish! -dnl SEE : --module-path --include-path - -dnl NOTE : There is no cross compilation support. - -dnl NOTE : missing ifort and kl* library handling.. -dnl NOTE : odd configurations like ifc + gcc still await in the mist of the unknown - - -############################################################################### -############################################################################### -# -# This script is used by the PSBLAS to determine the compilers, linkers, and -# libraries to build its libraries executable code. -# Its behaviour is driven on the compiler it finds or it is dictated to work -# with. -# -############################################################################### -############################################################################### - -# NOTE: the literal for version (the second argument to AC_INIT should be a literal!) -AC_INIT([AMG4PSBLAS],1.1.0, [https://github.com/sfilippone/amg4psblas/issues]) - -# VERSION is the file containing the PSBLAS version code -# FIXME -amg4psblas_cv_version="1.1.0" - -# A sample source file -AC_CONFIG_SRCDIR([amgprec/amg_prec_type.f90]) -# Our custom M4 macros are in the 'config' directory -AC_CONFIG_MACRO_DIR([config]) -AC_MSG_NOTICE([ --------------------------------------------------------------------------------- - Welcome to the $PACKAGE_NAME $amg4psblas_cv_version configure Script. - - This creates Make.inc, but if you read carefully the - documentation, you can make your own by hand for your needs. - - ./configure --with-psblas=/path/to/psblas - See ./configure --help=short fore more info. --------------------------------------------------------------------------------- - ]) - -############################################################################### -# FLAGS and LIBS user customization -############################################################################### - -dnl NOTE : no spaces before the comma, and no brackets before the second argument! -PAC_ARG_WITH_PSBLAS -PSBLAS_DIR="$pac_cv_psblas_dir"; -PSBLAS_INCDIR="$pac_cv_psblas_incdir"; -PSBLAS_MODDIR="$pac_cv_psblas_moddir"; -PSBLAS_LIBDIR="$pac_cv_psblas_libdir"; -AC_MSG_CHECKING([for PSBLAS install dir]) -if test "X$PSBLAS_DIR" != "X" ; then - case $PSBLAS_DIR in - /*) ;; - *) AC_MSG_ERROR([The PSBLAS installation dir must be an absolute pathname - specified with --with-psblas=/path/to/psblas]) - esac - if test ! -d "$PSBLAS_DIR" ; then - AC_MSG_ERROR([Could not find PSBLAS build dir $PSBLAS_DIR!]) - fi - AC_MSG_RESULT([$PSBLAS_DIR]) -fi - -AM_INIT_AUTOMAKE -dnl Specify required version of autoconf. -AC_PREREQ(2.59) -# -# Installation. -# -# -AC_PROG_INSTALL - -AC_MSG_CHECKING([where to install]) -case $prefix in - \/* ) eval "INSTALL_DIR=$prefix";; - * ) eval "INSTALL_DIR=/usr/local/amg4psblas";; -esac -case $libdir in - \/* ) eval "INSTALL_LIBDIR=$libdir";; - * ) eval "INSTALL_LIBDIR=$INSTALL_DIR/lib";; -esac -case $includedir in - \/* ) eval "INSTALL_INCLUDEDIR=$includedir";; - * ) eval "INSTALL_INCLUDEDIR=$INSTALL_DIR/include";; -esac -INSTALL_MODULESDIR=$INSTALL_DIR/modules -case $docsdir in - \/* ) eval "INSTALL_DOCSDIR=$docsdir";; - * ) eval "INSTALL_DOCSDIR=$INSTALL_DIR/docs";; -esac -case $samplesdir in - \/* ) eval "INSTALL_SAMPLESDIR=$samplesdir";; - * ) eval "INSTALL_SAMPLESDIR=$INSTALL_DIR/samples";; -esac -AC_MSG_RESULT([$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_MODULESDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR $INSTALL_SAMPLESDIR]) - -dnl -dnl We set our own FC flags, ignore those from AC_PROG_FC but not those from the -dnl environment variable. Same for C -dnl -save_FCFLAGS="$FCFLAGS"; -AC_PROG_FC([ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifort ifc nagfor gfortran]) -FCFLAGS="$save_FCFLAGS"; -save_CFLAGS="$CFLAGS"; -AC_PROG_CC([cc xlc pgcc icc gcc ]) -CFLAGS="$save_CFLAGS"; -save_CXXFLAGS="$CXXFLAGS"; -AC_PROG_CXX([CC xlc++ icpc g++]) -CXXFLAGS="$save_CXXFLAGS"; -dnl AC_PROG_CXX - -dnl AC_PROG_F90 doesn't exist, at the time of writing this ! -dnl AC_PROG_F90 - -# Sanity checks, although redundant (useful when debugging this configure.ac)! -if test "X$FC" == "X" ; then - AC_MSG_ERROR([Problem : No Fortran compiler specified nor found!]) -fi - -if eval "$FC -qversion 2>&1 | grep XL 2>/dev/null" ; then - # Some configurations of the XLF want "-WF," prepended to -D.. flags. - # TODO : discover the exact conditions when the usage of -WF is needed. - amg_cv_define_prepend="-WF," - if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then - FDEFINES="$amg_cv_define_prepend-DXLF_10 $FDEFINES" - fi - - # Note : there could be problems with old xlf compiler versions ( <10.1 ) - # since (as far as it is known to us) -WF, is not used in earlier versions. - # More problems could be undocumented yet. -fi - -if test "X$CC" == "X" ; then - AC_MSG_ERROR([Problem : No C compiler specified nor found!]) -fi -AC_PROG_CC_STDC() -if test "x$ac_cv_prog_cc_stdc" == "xno" ; then - AC_MSG_ERROR([Problem : Need a C99 compiler ! ]) -else - C99OPT="$ac_cv_prog_cc_stdc"; -fi -############################################################################### -# Suitable MPI compilers detection -############################################################################### -# Note: Someday we will contemplate a fake MPI - configured version of PSBLAS -############################################################################### -# First check whether the user required our serial (fake) mpi. -PAC_ARG_SERIAL_MPI - -#Note : we miss the name of the Intel C compiler -if test x"$pac_cv_serial_mpi" == x"yes" ; then - FAKEMPI="fakempi.o"; - MPIFC="$FC"; - MPICC="$CC"; - MPICXX="$CXX"; - CXXDEFINES="-DSERIAL_MPI $CXXDEFINES"; - -else -AC_LANG([C]) -if test "X$MPICC" = "X" ; then - # This is our MPICC compiler preference: it will override ACX_MPI's first try. - AC_CHECK_PROGS([MPICC],[mpxlc mpiicc mpcc mpicc cc]) -fi -ACX_MPI([], [AC_MSG_ERROR([[Cannot find any suitable MPI implementation for C]])]) - - -AC_LANG([Fortran]) - -if test "X$MPIFC" = "X" ; then - # This is our MPIFC compiler preference: it will override ACX_MPI's first try. - AC_CHECK_PROGS([MPIFC],[mpxlf2003_r mpxlf2003 mpxlf95_r mpxlf90 mpiifort mpf95 mpf90 mpifort mpif95 mpif90 ftn ]) -fi - -ACX_MPI([], [AC_MSG_ERROR([[Cannot find any suitable MPI implementation for Fortran]])]) -AC_LANG([C++]) -if test "X$MPICXX" = "X" ; then - # This is our MPICC compiler preference: it will override ACX_MPI's first try. - AC_CHECK_PROGS([MPICXX],[mpxlc++ mpiicpc mpicxx]) -fi -ACX_MPI([], [AC_MSG_ERROR([[Cannot find any suitable MPI implementation for C++]])]) -AC_LANG([Fortran]) - -FC="$MPIFC" ; -CC="$MPICC"; -CXX="$MPICXX"; -fi - -AC_LANG([C]) - -dnl Now on, MPIFC should be set, and MPICC - -############################################################################### -# Sanity checks, although redundant (useful when debugging this configure.ac)! -############################################################################### - -if test "X$MPIFC" == "X" ; then - AC_MSG_ERROR([Problem : No MPI Fortran compiler specified nor found!]) -fi - -if test "X$MPICC" == "X" ; then - AC_MSG_ERROR([Problem : No MPI C compiler specified nor found!]) -fi - -############################################################################### -# FLAGS and LIBS user customization -############################################################################### - -dnl NOTE : no spaces before the comma, and no brackets before the second argument! -PAC_ARG_WITH_FLAGS(ccopt,CCOPT) -PAC_ARG_WITH_FLAGS(cxxopt,CXXOPT) -PAC_ARG_WITH_FLAGS(fcopt,FCOPT) -PAC_ARG_WITH_LIBS -PAC_ARG_WITH_FLAGS(clibs,CLIBS) -PAC_ARG_WITH_FLAGS(flibs,FLIBS) -PAC_ARG_WITH_FLAGS(cxxlibs,CXXLIBS) - -dnl candidates for removal: -PAC_ARG_WITH_FLAGS(library-path,LIBRARYPATH) -PAC_ARG_WITH_FLAGS(include-path,INCLUDEPATH) -PAC_ARG_WITH_FLAGS(module-path,MODULE_PATH) - -# we just gave the user the chance to append values to these variables -PAC_ARG_WITH_EXTRA_LIBS - -############################################################################### -# Sanity checks, although redundant (useful when debugging this configure.ac)! -############################################################################### - -############################################################################### -# Compiler identification (sadly, it is necessary) -############################################################################### -psblas_cv_fc="" - -dnl Do we use gfortran & co ? Compiler identification. -dnl NOTE : in /autoconf/autoconf/fortran.m4 there are plenty of better tests! - -PAC_CHECK_HAVE_GFORTRAN( - [psblas_cv_fc="gcc"], -) - -PAC_CHECK_HAVE_CRAYFTN( - [psblas_cv_fc="cray"], -) - -if test x"$psblas_cv_fc" == "x" ; then - if eval "$MPIFC -qversion 2>&1 | grep XL 2>/dev/null" ; then - psblas_cv_fc="xlf" - # Some configurations of the XLF want "-WF," prepended to -D.. flags. - # TODO : discover the exact conditions when the usage of -WF is needed. - psblas_cv_define_prepend="-WF," - if eval "$MPIFC -qversion 2>&1 | grep -e\"Version: 10\.\" 2>/dev/null"; then - FDEFINES="$psblas_cv_define_prepend-DXLF_10 $FDEFINES" - fi - - # Note : there could be problems with old xlf compiler versions ( <10.1 ) - # since (as far as it is known to us) -WF, is not used in earlier versions. - # More problems could be undocumented yet. - elif eval "$MPIFC -V 2>&1 | grep Sun 2>/dev/null" ; then - # Sun compiler detection - - psblas_cv_fc="sun" - elif eval "$MPIFC -V 2>&1 | grep Portland 2>/dev/null" ; then - # Portland group compiler detection - - psblas_cv_fc="pg" - elif eval "$MPIFC -V 2>&1 | grep Intel.*Fortran.*Compiler 2>/dev/null" ; then - # Intel compiler identification - - psblas_cv_fc="ifc" - elif eval "$MPIFC -v 2>&1 | grep NAG 2>/dev/null" ; then - psblas_cv_fc="nag" - FC="$MPIFC" - else - psblas_cv_fc="" - # unsupported MPI Fortran compiler - AC_MSG_NOTICE([[Unknown Fortran compiler, proceeding with fingers crossed !]]) - fi -fi -if test "X$psblas_cv_fc" == "Xgcc" ; then -PAC_HAVE_MODERN_GFORTRAN( - [], - [AC_MSG_ERROR([Bailing out.])] -) -fi - - -############################################################################### -# Linking, symbol mangling, and misc tests -############################################################################### - -# Note : This is functional to Make.inc rules and structure (see below). -AC_LANG([C]) -AC_CHECK_SIZEOF(void *) -# Define for platforms with 64 bit (void * ) pointers -if test X"$ac_cv_sizeof_void_p" == X"8" ; then - CDEFINES="-DPtr64Bits $CDEFINES" -fi -AC_LANG([Fortran]) -__AC_FC_NAME_MANGLING -if test "X$psblas_cv_fc" == X"pg" ; then - FC=$save_FC -fi -AC_LANG([C]) -dnl AC_MSG_NOTICE([Fortran name mangling: $ac_cv_fc_mangling]) -[pac_fc_case=${ac_cv_fc_mangling%%,*}] -[pac_fc_under=${ac_cv_fc_mangling#*,}] -[pac_fc_sec_under=${pac_fc_under#*,}] -[pac_fc_sec_under=${pac_fc_sec_under# }] -[pac_fc_under=${pac_fc_under%%,*}] -[pac_fc_under=${pac_fc_under# }] -AC_MSG_CHECKING([defines for C/Fortran name interfaces]) -if test "x$pac_fc_case" == "xlower case"; then - if test "x$pac_fc_under" == "xunderscore"; then - if test "x$pac_fc_sec_under" == "xno extra underscore"; then - pac_f_c_names="-DLowerUnderscore" - elif test "x$pac_fc_sec_under" == "xextra underscore"; then - pac_f_c_names="-DLowerDoubleUnderscore" - else - pac_f_c_names="-DUNKNOWN" -dnl AC_MSG_NOTICE([Fortran name mangling extra underscore unknown case]) - fi - elif test "x$pac_fc_under" == "xno underscore"; then - pac_f_c_names="-DLowerCase" - else - pac_f_c_names="-DUNKNOWN" -dnl AC_MSG_NOTICE([Fortran name mangling underscore unknown case]) - fi -elif test "x$pac_fc_case" == "xupper case"; then - if test "x$pac_fc_under" == "xunderscore"; then - if test "x$pac_fc_sec_under" == "xno extra underscore"; then - pac_f_c_names="-DUpperUnderscore" - elif test "x$pac_fc_sec_under" == "xextra underscore"; then - pac_f_c_names="-DUpperDoubleUnderscore" - else - pac_f_c_names="-DUNKNOWN" -dnl AC_MSG_NOTICE([Fortran name mangling extra underscore unknown case]) - fi - elif test "x$pac_fc_under" == "xno underscore"; then - pac_f_c_names="-DUpperCase" - else - pac_f_c_names="-DUNKNOWN" -dnl AC_MSG_NOTICE([Fortran name mangling underscore unknown case]) - fi -dnl AC_MSG_NOTICE([Fortran name mangling UPPERCASE not handled]) -else - pac_f_c_names="-DUNKNOWN" -dnl AC_MSG_NOTICE([Fortran name mangling unknown case]) -fi -CDEFINES="$pac_f_c_names $CDEFINES" - -AC_MSG_RESULT([ $pac_f_c_names ]) - -############################################################################### -# Make.inc generation logic -############################################################################### -# Honor CFLAGS if they were specified explicitly, but --with-ccopt take precedence -if test "X$CCOPT" == "X" ; then - CCOPT="$CFLAGS"; -fi -if test "X$CCOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignements - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - CCOPT="-O3 $CCOPT" - - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - CCOPT="-O3 -qarch=auto $CCOPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - CCOPT="-O3 $CCOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - CCOPT="-fast $CCOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - CCOPT="-fast $CCOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - CCOPT="-O3 $CCOPT" - MPICC="cc" - elif test "X$psblas_cv_fc" == X"nag" ; then - # using GCC in conjunction with NAG. - CCOPT="-O2" - else - CCOPT="-O2 $CCOPT" - fi -fi -#CFLAGS="${CCOPT}" -if test "X$CXXOPT" == "X" ; then - CXXOPT="$CXXFLAGS"; -fi -if test "X$CXXOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignements - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - CXXOPT="-g -O3 $CXXOPT" - - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - CXXOPT="-O3 -qarch=auto $CXXOPT" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - CXXOPT="-O3 $CXXOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - CXXCOPT="-fast $CXXOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - CXXOPT="-fast $CXXOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - CXXOPT="-O3 $CXXOPT" - MPICXX="CC" - else - CXXOPT="-g -O3 $CXXOPT" - fi -fi - - -# Honor FCFLAGS if they were specified explicitly, but --with-fcopt take precedence -if test "X$FCOPT" == "X" ; then - FCOPT="$FCFLAGS"; -fi -if test "X$FCOPT" == "X" ; then - if test "X$psblas_cv_fc" == "Xgcc" ; then - # note that no space should be placed around the equality symbol in assignations - # Note : 'native' is valid _only_ on GCC/x86 (32/64 bits) - FCOPT="-O3 $FCOPT" - elif test "X$psblas_cv_fc" == X"xlf" ; then - # XL compiler : consider using -qarch=auto - FCOPT="-O3 -qarch=auto -qlanglvl=extended -qxlf2003=polymorphic:autorealloc $FCOPT" - FCFLAGS="-qhalt=e -qlanglvl=extended -qxlf2003=polymorphic:autorealloc $FCFLAGS" - elif test "X$psblas_cv_fc" == X"ifc" ; then - # other compilers .. - FCOPT="-O3 $FCOPT" - elif test "X$psblas_cv_fc" == X"pg" ; then - # other compilers .. - FCOPT="-fast $FCOPT" - # NOTE : PG & Sun use -fast instead -O3 - elif test "X$psblas_cv_fc" == X"sun" ; then - # other compilers .. - FCOPT="-fast $FCOPT" - elif test "X$psblas_cv_fc" == X"cray" ; then - FCOPT="-O3 -em $FCOPT" - elif test "X$psblas_cv_fc" == X"nag" ; then - # NAG compiler .. - FCOPT="-O2 " - # NOTE : PG & Sun use -fast instead -O3 - else - FCOPT="-O2 $FCOPT" - fi -fi -if test "X$psblas_cv_fc" == X"nag" ; then - # Add needed options - FCOPT="$FCOPT -dcfuns -f2003 -wmismatch=mpi_scatterv,mpi_alltoallv,mpi_gatherv,mpi_allgatherv" - EXTRA_OPT="-mismatch_all" -fi - - -# COPT,FCOPT are aliases for CFLAGS,FCFLAGS . - -############################################################################## -# Compilers variables selection -############################################################################## -FC=${FC} -CC=${CC} -CXX=${CXX} -CCOPT="$CCOPT $C99OPT" - - -############################################################################## -# Choice of our compilers, needed by Make.inc -############################################################################## -if test "X$psblas_cv_fc" == X"cray" -then - MODEXT=".mod" - FMFLAG="-I" - FIFLAG="-I" - BASEMODNAME=PSB_BASE_MOD - PRECMODNAME=PSB_PREC_MOD - METHDMODNAME=PSB_KRYLOV_MOD - UTILMODNAME=PSB_UTIL_MOD - -else - AX_F90_MODULE_EXTENSION - AX_F90_MODULE_FLAG - MODEXT=".$ax_cv_f90_modext" - FMFLAG="${ax_cv_f90_modflag%%[ ]*}" - FIFLAG=-I - BASEMODNAME=psb_base_mod - PRECMODNAME=psb_prec_mod - METHDMODNAME=psb_krylov_mod - UTILMODNAME=psb_util_mod -fi - - -############################################################################## -# Choice of our compilers, needed by Make.inc -############################################################################## -if test "X$FLINK" == "X" ; then - FLINK=${MPF90} -fi -# Custom test : do we have a module or include for MPI Fortran interface? -if test x"$pac_cv_serial_mpi" == x"yes" ; then - FDEFINES="$psblas_cv_define_prepend-DSERIAL_MPI $psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; -else - PAC_FORTRAN_CHECK_HAVE_MPI_MOD_F08() - if test x"$pac_cv_mpi_f08" == x"yes" ; then -dnl FDEFINES="$psblas_cv_define_prepend-DMPI_MOD_F08 $FDEFINES"; - FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"; - else - PAC_FORTRAN_CHECK_HAVE_MPI_MOD( - [FDEFINES="$psblas_cv_define_prepend-DMPI_MOD $FDEFINES"], - [FDEFINES="$psblas_cv_define_prepend-DMPI_H $FDEFINES"]) - fi -fi - -FLINK="$MPIFC" -PAC_ARG_OPENMP() -if test x"$pac_cv_openmp" == x"yes" ; then - FDEFINES="$psblas_cv_define_prepend-DOPENMP $FDEFINES"; - CDEFINES="-DOPENMP $CDEFINES"; - FCOPT="$FCOPT $pac_cv_openmp_fcopt"; - CCOPT="$CCOPT $pac_cv_openmp_ccopt"; - FLINK="$FLINK $pac_cv_openmp_fcopt"; -fi - -PAC_FORTRAN_HAVE_PSBLAS([AC_MSG_RESULT([yes.])], - [AC_MSG_ERROR([no. Could not find working version of PSBLAS.])]) - -PAC_FORTRAN_PSBLAS_VERSION() - -if test "x$pac_cv_psblas_major" == "xunknown"; then - AC_MSG_ERROR([PSBLAS version major "$pac_cv_psblas_major".]) -fi -if test "x$pac_cv_psblas_minor" == "xunknown"; then - AC_MSG_ERROR([PSBLAS version minor "$pac_cv_psblas_minor".]) -fi -if test "x$pac_cv_psblas_patchlevel" == "xunknown"; then - AC_MSG_ERROR([PSBLAS patchlevel "$pac_cv_psblas_patchlevel".]) -fi -if (( $pac_cv_psblas_major < 3 )) || - ( (( $pac_cv_psblas_major == 3 )) && (( $pac_cv_psblas_minor < 8 ))) ; then - AC_MSG_ERROR([I need at least PSBLAS version 3.8.0]) -else - AC_MSG_NOTICE([Am configuring with PSBLAS version $pac_cv_psblas_major.$pac_cv_psblas_minor.$pac_cv_psblas_patchlevel.]) -fi -PAC_FORTRAN_PSBLAS_INTEGER_SIZES() -AC_MSG_NOTICE([PSBLAS size of LPK "$pac_cv_psblas_lpk".]) -if test x"$pac_cv_psblas_lpk" == x8"" ; then - CXXDEFINES="-DBIT64 $CXXDEFINES"; -fi - -############################################################################### -# Parachute rules for ar and ranlib ... (could cause problems) -############################################################################### - -if test "X$AR" == "X" ; then - AR="ar" -fi - -if test "X$RANLIB" == "X" ; then - RANLIB="ranlib" -fi - -# This should be portable -AR="${AR} -cur" - - -############################################################################### -# NOTE : -# Missing stuff : -# In the case the detected fortran compiler is ifort, icc or gcc -# should be valid options. -# The same for pg (Portland Group compilers). -############################################################################### - -# -# Tests for support of various Fortran features; some of them are critical, -# some optional -# - -# -# Critical features -# - -PAC_FORTRAN_TEST_EXTENDS( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for EXTENDS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_CLASS_TBP( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for CLASS and type bound procedures. - Please get a Fortran compiler that supports them, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_SOURCE( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for SOURCE= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_HAVE_MOVE_ALLOC( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for MOVE_ALLOC. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_ISO_C_BIND( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_SAME_TYPE( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for SAME_TYPE_AS. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_EXTENDS_TYPE( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for EXTENDS_TYPE_OF. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_MOLD( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for MOLD= allocation. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_VOLATILE( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for VOLATILE])] -) - -PAC_FORTRAN_TEST_ISO_C_BIND( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for ISO_C_BINDING. - Please get a Fortran compiler that supports it, e.g. GNU Fortran 4.8.])] -) - -PAC_FORTRAN_TEST_ISO_FORTRAN_ENV( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for ISO_FORTRAN_ENV])] -) - -PAC_FORTRAN_TEST_FINAL( - [], - [AC_MSG_ERROR([Sorry, cannot build PSBLAS without support for FINAL])] -) - - -# -# Optional features -# - - -PAC_FORTRAN_TEST_GENERICS( - [], - [FDEFINES="$psblas_cv_define_prepend-DHAVE_BUGGY_GENERICS $FDEFINES"] -) - -PAC_FORTRAN_TEST_FLUSH( - [FDEFINES="$psblas_cv_define_prepend-DHAVE_FLUSH_STMT $FDEFINES"], -) - - -############################################################################### -# Additional pathname stuff (yes, it is redundant and confusing...) -############################################################################### - -# -I -if test x"$INCLUDEPATH" != "x" ; then - FINCLUDES="$FINCLUDES $INCLUDEPATH" - CINCLUDES="$CINCLUDES $INCLUDEPATH" -fi - -# -L -if test x"$LIBRARYPATH" != "x" ; then - FINCLUDES="$FINCLUDES $LIBRARYPATH" -fi - -# -I -if test x"$MODULE_PATH" != "x" ; then - FINCLUDES="$FINCLUDES $MODULE_PATH" -fi - - -############################################################################### -# BLAS library presence checks -############################################################################### - -# Note : The libmkl.a (Intel Math Kernel Library) library could be used, too. -# It is sufficient to specify it as -lmkl in the CLIBS or FLIBS or LIBS -# and specify its path adjusting -L/path in CFLAGS. - -# Right now it is a matter of user's taste when linking custom applications. -# But PSBLAS examples could take advantage of these libraries, too. -AC_LANG([Fortran]) -############################################################################### -# BLAS library presence checks -############################################################################### - -# Note : The libmkl.a (Intel Math Kernel Library) library could be used, too. -# It is sufficient to specify it as -lmkl in the CLIBS or FLIBS or LIBS -# and specify its path adjusting -L/path in CFLAGS. - -# Right now it is a matter of user's taste when linking custom applications. -# But PSBLAS examples could take advantage of these libraries, too. - -PAC_BLAS([], [AC_MSG_ERROR([[Cannot find BLAS library, specify a path using --with-blas=DIR/LIB (for example --with-blas=/usr/path/lib/libcxml.a)]])]) -PAC_LAPACK( -[FDEFINES="$psblas_cv_define_prepend-DHAVE_LAPACK $FDEFINES"], -) -AC_LANG([C]) - - -############################################################################### -# BLACS library presence checks -############################################################################### -#AC_LANG([C]) -#if test x"$pac_cv_serial_mpi" == x"no" ; then -#save_FC="$FC"; -#save_CC="$CC"; -#FC="$MPIFC"; -#CC="$MPICC"; -#PAC_CHECK_BLACS -#FC="$save_FC"; -#CC="$save_CC"; -#fi - -PAC_MAKE_IS_GNUMAKE -############################################################################### -# Auxiliary packages -############################################################################### - -PAC_CHECK_METIS - -AC_MSG_CHECKING([Compatibility between metis and LPK]) -if test "x$pac_cv_lpk_size" == "x4" ; then - if test "x$pac_cv_metis_idx" == "x64" ; then - dnl mismatch between metis size and PSBLAS LPK - psblas_cv_have_metis="no"; - dnl - fi - fi - if test "x$pac_cv_lpk_size" == "x8" ; then - if test "x$pac_cv_metis_idx" == "x32" ; then - dnl mismatch between metis size and PSBLAS LPK - psblas_cv_have_metis="no"; - fi - fi -AC_MSG_RESULT([$psblas_cv_have_metis]) - -if test "x$pac_cv_metis_idx" == "xunknown" ; then - dnl mismatch between metis size and PSBLAS LPK - AC_MSG_NOTICE([Unknown METIS bitsize.]) - $psblas_cv_have_metis = "no"; -fi -if test "x$pac_cv_metis_real" == "xunknown" ; then - dnl mismatch between metis size and PSBLAS LPK - AC_MSG_NOTICE([Unknown METIS REAL bitsize.]) - $psblas_cv_have_metis = "no"; -fi -if test "x$psblas_cv_have_metis" == "xyes" ; then - FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $psblas_cv_define_prepend-DMETIS_$pac_cv_metis_idx $psblas_cv_define_prepend-DMETIS_REAL_$pac_cv_metis_real $FDEFINES" - CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES -DMETIS_$pac_cv_metis_idx -DMETIS_REAL_$pac_cv_metis_real" - METISINCFILE=$psblas_cv_metisincfile -fi - - -PAC_CHECK_MUMPS -# -# 1. Enable even with LPK=8, internally it will check if -# the problem size fits into 4 bytes, very likely since we -# are mostly using MUMPS at coarse level. -# -dnl if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then -dnl if test "x$pac_cv_psblas_ipk" == "x8" ; then -dnl AC_MSG_NOTICE([PSBLAS defines PSB_IPK_ as $pac_cv_psblas_ipk. MUMPS interfacing disabled. ]) -dnl MUMPS_FLAGS=""; -dnl MUMPS_LIBS=""; -dnl amg4psblas_cv_have_mumps=no; -dnl fi -dnl fi -if test "x$amg4psblas_cv_have_mumps" == "xyes" ; then - if test "x$pac_cv_psblas_lpk" == "x8" ; then - AC_MSG_NOTICE([PSBLAS defines PSB_LPK_ as $pac_cv_psblas_lpk. MUMPS interfacing will fail when called in global mode on very large matrices. ]) - fi - if test "x$pac_mumps_fmods_ok" == "xyes" ; then - FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_MODULES_ $MUMPS_MODULES $FDEFINES" - MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_MODULES" - elif test "x$pac_mumps_fincs_ok" == "xyes" ; then - FDEFINES="$amg_cv_define_prepend-DHAVE_MUMPS_ $amg_cv_define_prepend-DHAVE_MUMPS_INCLUDES_ $MUMPS_FINCLUDES $FDEFINES" - MUMPS_FLAGS="-DHave_MUMPS_ $MUMPS_INCLUDES" - else - # This should not happen - MUMPS_FLAGS="" - MUMPS_LIBS="" - fi -else - MUMPS_FLAGS="" - MUMPS_LIBS="" -fi - -PAC_CHECK_UMFPACK -if test "x$amg4psblas_cv_have_umfpack" == "xyes" ; then - UMF_FLAGS="-DHave_UMF_ $UMF_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_UMF_ $FDEFINES" -else - UMF_FLAGS="" -fi - -PAC_CHECK_SUPERLU -if test "x$amg4psblas_cv_have_superlu" == "xyes" ; then - SLU_FLAGS="-DHave_SLU_ -DSLU_VERSION_$pac_slu_version $SLU_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_SLU_ $FDEFINES" -else - SLU_FLAGS="" -fi - -PAC_CHECK_SUPERLUDIST() - -if test "x$amg4psblas_cv_have_superludist" == "xyes" ; then - pac_sludist_version="$amg4psblas_cv_superludist_major$amg4psblas_cv_superludist_minor"; - AC_MSG_NOTICE([Configuring with SuperLU_DIST version flag $pac_sludist_version]) - SLUDIST_FLAGS="" - SLUDIST_FLAGS="-DHave_SLUDist_ -DSLUD_VERSION_="$pac_sludist_version" $SLUDIST_INCLUDES" - FDEFINES="$amg_cv_define_prepend-DHAVE_SLUDIST_ $FDEFINES" -else - SLUDIST_FLAGS="" -fi - -############################################## -FINCLUDES="$PSBLAS_INCLUDES" - -AMGFDEFINES="$FDEFINES" -AMGCDEFINES="$CDEFINES" -AMGCXXDEFINES="$CXXDEFINES" - -LIBDIR=lib -BASELIBNAME=libpsb_base.a -PRECLIBNAME=libpsb_prec.a -METHDLIBNAME=libpsb_krylov.a -UTILLIBNAME=libpsb_util.a -AMGLIBNAME=libamg_prec.a - -COMPILERULES=' -PSBLDLIBS=$(LAPACK) $(BLAS) $(METIS_LIB) $(AMD_LIB) $(LIBS) -CXXDEFINES=$(PSBCXXDEFINES) -CDEFINES=$(PSBCDEFINES) -FDEFINES=$(PSBFDEFINES) - - -# These should be portable rules, arent they? -.c.o: - $(CC) $(CCOPT) $(CINCLUDES) $(CDEFINES) -c $< -o $@ -.f90.o: - $(FC) $(FCOPT) $(FINCLUDES) -c $< -o $@ -.F90.o: - $(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c $< -o $@ -.cpp.o: - $(CXX) $(CXXOPT) $(CXXINCLUDES) $(CXXDEFINES) -c $< -o $@' -############################################################################### -# Variable substitutions : the Make.inc.in will have these @VARIABLES@ -# substituted. - -AC_SUBST(PSBLAS_DIR) -AC_SUBST(PSBLAS_INCDIR) -AC_SUBST(PSBLAS_MODDIR) -AC_SUBST(PSBLAS_LIBDIR) -AC_SUBST(PSBLAS_INCLUDES) -dnl AC_SUBST(PSBLAS_INSTALL_MAKEINC) -AC_SUBST(PSBLAS_LIBS) -AC_SUBST(PSBLAS_RULES) - -AC_SUBST(INSTALL) -AC_SUBST(INSTALL_DATA) -AC_SUBST(INSTALL_DIR) -AC_SUBST(INSTALL_LIBDIR) -AC_SUBST(INSTALL_INCLUDEDIR) -AC_SUBST(INSTALL_MODULESDIR) -AC_SUBST(INSTALL_DOCSDIR) -AC_SUBST(INSTALL_SAMPLESDIR) - -AC_SUBST(EXTRA_LIBS) -AC_SUBST(BLAS_LIBS) -AC_SUBST(LAPACK_LIBS) -AC_SUBST(METIS_LIBS) -AC_SUBST(MUMPS_FLAGS) -AC_SUBST(MUMPS_LIBS) -AC_SUBST(SLU_FLAGS) -AC_SUBST(SLU_LIBS) -AC_SUBST(UMF_FLAGS) -AC_SUBST(UMF_LIBS) -AC_SUBST(SLUDIST_FLAGS) -AC_SUBST(SLUDIST_LIBS) -AC_SUBST(AMGFDEFINES) -AC_SUBST(AMGCDEFINES) -AC_SUBST(AMGCXXDEFINES) -AC_SUBST(MODEXT) -AC_SUBST(COMPILERULES) -AC_SUBST(FDEFINES) -AC_SUBST(CDEFINES) -AC_SUBST(BASEMODNAME) -AC_SUBST(PRECMODNAME) -AC_SUBST(METHDMODNAME) -AC_SUBST(UTILMODNAME) -AC_SUBST(AMGLIBNAME) -AC_SUBST(MPIFC) -AC_SUBST(MPICC) -AC_SUBST(MPICXX) -AC_SUBST(FCOPT) -AC_SUBST(CCOPT) -AC_SUBST(CXXOPT) -AC_SUBST(EXTRA_OPT) -AC_SUBST(FAKEMPI) -AC_SUBST(FIFLAG) -AC_SUBST(FMFLAG) -AC_SUBST(MODEXT) -AC_SUBST(FLINK) -AC_SUBST(LIBS) -AC_SUBST(AR) -AC_SUBST(RANLIB) -AC_SUBST(MPIFC) -AC_SUBST(MPIFCC) - -############################################################################### -# the following files will be created by Automake - -AC_CONFIG_FILES([Make_n.inc]) -AC_OUTPUT() - -############################################################################### - -dnl Please note that brackets around variable identifiers are absolutely needed for compatibility.. -AC_MSG_NOTICE([ - ${PACKAGE_NAME} ${amg4psblas_cv_version} has been configured as follows: - - PSBLAS library : ${PSBLAS_DIR} - MUMPS detected : ${amg4psblas_cv_have_mumps} - SuperLU detected : ${amg4psblas_cv_have_superlu} - SuperLU_Dist detected : ${amg4psblas_cv_have_superludist} - UMFPack detected : ${amg4psblas_cv_have_umfpack} - - If you are satisfied, run 'make' to build ${PACKAGE_NAME} and its documentation; otherwise - type ./configure --help=short for a complete list of configure options specific to ${PACKAGE_NAME}. -dnl To install the program and its documentation, run 'make install' if you are root, -dnl or run 'su -c "make install"' if you are not root. -]) - -############################################################################### - From 06f8f83114cca17e7d88f19c0dfd176221791d28 Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 23 Dec 2025 11:21:53 +0100 Subject: [PATCH 2/5] Update documentation for release --- docs/amg4psblas_1.2-guide.pdf | Bin 1878092 -> 1878728 bytes docs/html/index.html | 2 +- docs/html/userhtml.html | 2 +- docs/html/userhtmlli1.html | 34 +- docs/html/userhtmlse1.html | 66 +- docs/html/userhtmlse3.html | 92 +-- docs/html/userhtmlse4.html | 132 ++-- docs/html/userhtmlse5.html | 1199 ++++++++++++++++----------------- docs/html/userhtmlse7.html | 4 + docs/html/userhtmlse8.html | 73 +- docs/src/abstract.tex | 42 +- docs/src/building.tex | 17 +- docs/src/gettingstarted.tex | 20 +- docs/src/license.tex | 69 +- docs/src/overview.tex | 68 +- docs/src/userguide.tex | 2 +- docs/src/userhtml.tex | 2 +- docs/src/userinterface.tex | 73 +- 18 files changed, 975 insertions(+), 922 deletions(-) diff --git a/docs/amg4psblas_1.2-guide.pdf b/docs/amg4psblas_1.2-guide.pdf index 6cead832cd95c3011697007ddaa2fcab47bad00d..faec7bbe1e5eb071e10df540e393eefe4f85fa97 100644 GIT binary patch delta 55231 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 delta 54031 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

Xg8UtQi8B_!&qT8U9Kq*fvC1C!4N`aOULhI8q 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

)=SS^9`-H9=QOv}5;3gKCD6CedA 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 diff --git a/docs/html/index.html b/docs/html/index.html index 05e3ea7c..4ed148b0 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -31,7 +31,7 @@ class="cmr-12">University of Rome Tor-Vergata and IAC-CNR
Software version: 1.2
December 31st, 2025 +class="cmr-12">December 23rd, 2025 diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 05e3ea7c..4ed148b0 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -31,7 +31,7 @@ class="cmr-12">University of Rome Tor-Vergata and IAC-CNR
Software version: 1.2
December 31st, 2025 +class="cmr-12">December 23rd, 2025 diff --git a/docs/html/userhtmlli1.html b/docs/html/userhtmlli1.html index 328c05e6..43007b4d 100644 --- a/docs/html/userhtmlli1.html +++ b/docs/html/userhtmlli1.html @@ -72,32 +72,34 @@ class="small-caps">n class="cmcsc-10x-x-120">PSBLAS) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework. It is a progress +class="cmr-12">PSCToolkit (Parallel Sparse Computation Toolkit) software framework. It of a software development project started in 2007, named MLD2P4, which originally +class="cmr-12">is an evolutiuon of a software development project started in 2007, named implemented a multilevel version of some domain decomposition preconditioners of +class="cmr-12">MLD2P4, which originally implemented a multilevel version of some domain additive-Schwarz type, and was based on a parallel decoupled version of the well known +class="cmr-12">decomposition preconditioners of additive-Schwarz type, and was based on a parallel smoothed aggregation method to generate the multilevel hierarchy of coarser +class="cmr-12">decoupled version of the well known smoothed aggregation method to generate the matrices. In the last years, within the context of the EU-H2020 EoCoE project +class="cmr-12">multilevel hierarchy of coarser matrices. In the last few years the package (Energy Oriented Center of Excellence), the package was extended for including +class="cmr-12">was extended for including new algorithms and functionalities for the setup new algorithms and functionalities for the setup and application new AMG +class="cmr-12">and application new AMG preconditioners with the final aims of improving preconditioners with the final aims of improving efficiency and scalability when tens of +class="cmr-12">efficiency and scalability when tens of thousands cores are used, and of boosting thousands cores are used, and of boosting reliability in dealing with general +class="cmr-12">reliability in dealing with general symmetric positive definite linear systems; these symmetric positive definite linear systems. Due to the significant number +class="cmr-12">developments have been supported in the context of the EU-H2020 EoCoE +project (Energy Oriented Center of Excellence). Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS. -

AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra @@ -111,14 +113,14 @@ class="cmr-12">algebraic approach; therefore users level interfaces assume that class="cmr-12">and preconditioners are represented as PSBLAS distributed sparse matrices. AMG4PSBLAS enables the user to easily specify different features of an algebraic -multilevel preconditioner, thus allowing to experiment with different preconditioners for +multilevel preconditioner, thus allowing to experiment with different preconditioners for the problem and parallel computers at hand. -

The package employs object-oriented design techniques in Fortran 2003, with parallel implementation is based on a Single Program Multiple Dat class="cmr-12">paradigm; the inter-process communication is based on MPI and is managed mainly through PSBLAS. -

This guide provides a brief description of the functionalities and the user interface of AMG4PSBLAS. diff --git a/docs/html/userhtmlse1.html b/docs/html/userhtmlse1.html index ae661559..f42c44aa 100644 --- a/docs/html/userhtmlse1.html +++ b/docs/html/userhtmlse1.html @@ -100,18 +100,18 @@ src="userhtml0x.png" alt="Ax = b, id="x4-3001r1"> (1) -

where A is a square, real or complex, sparse symmetric positive definite (s.p.d) matrix. -

The preconditioners implemented in AMG4PSBLAS are obtained by combining 3 different types of AMG cycles with smoothers and coarsest-level solvers. Available +class="cmr-12">different types of AMG cycles with smoothers and coarsest-level solvers. We provide a multigrid cycles include the V-, W-, and a version of a Krylov-type cycle +class="cmr-12">number of multigrid cycles, including the V-, W-, and a version of a Krylov-type cycle (K-cycle) 14]. -

An algebraic approach is used to generate a hierarchy of coarse-level matrices and operators, without explicitly using any information on the geometry of the original @@ -150,7 +150,7 @@ class="cmr-12">problem, e.g., the discretization of a PDE. To this end, two diff class="cmr-12">strategies, based on aggregation, are available:

-

Either exact or approximate solvers can be used on the coarsest-level system. We provide interfaces to various parallel and sequential sparse LU factorizations from external @@ -210,7 +210,7 @@ class="cmr-12">parallel weighted Jacobi, hybrid Gauss-Seidel, block-Jacobi solve class="cmr-12">preconditioned Krylov methods; all smoothers can be also exploited as one-level preconditioners. -

AMG4PSBLAS is written in Fortran 2003, following an object-oriented design Single and double precision implementations of AMG4PSBLAS are ava class="cmr-12">for both the real and the complex case, which can be used through a single interface. -

AMG4PSBLAS has been designed to implement scalable and easy-to-use +

AMG4PSBLAS has been designed to implement scalable and easy-to-use multilevel multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS) +class="cmr-12">preconditioners in the context of the PSBLAS (Parallel Sparse BLAS) computational computational frameworkframework [ 22]. PSBLAS provides basic linear algebra operators +class="cmr-12">. PSBLAS provides basic linear algebra operators and data and data management facilities for distributed sparse matrices, kernels for +class="cmr-12">management facilities for distributed sparse matrices, kernels for sequential incomplete sequential incomplete factorizations needed for the parallel block-Jacobi and +class="cmr-12">factorizations needed for the parallel block-Jacobi and additive Schwarz smoothers, and additive Schwarz smoothers, and parallel Krylov solvers which can be used with +class="cmr-12">parallel Krylov solvers which can be used with the AMG4PSBLAS preconditioners. the AMG4PSBLAS preconditioners. The choice of PSBLAS has been mainly +class="cmr-12">The choice of PSBLAS has been mainly motivated by the need of having a portable motivated by the need of having a portable and efficient software infrastructure +class="cmr-12">and efficient software infrastructure implementing “de facto” standard parallel sparse implementing “de facto” standard parallel sparse linear algebra kernels, to +class="cmr-12">linear algebra kernels, to pursue goals such as performance, portability, modularity pursue goals such as performance, portability, modularity ed extensibility +class="cmr-12">ed extensibility in the development of the preconditioner package. On the in the development of the preconditioner package. On the other hand, the +class="cmr-12">other hand, the implementation of AMG4PSBLAS, which was driven by the implementation of AMG4PSBLAS, which was driven by the need to face the exascale +class="cmr-12">need to face the exascale challenge, has led to some important revisions and challenge, has led to some important revisions and extentions of the PSBLAS +class="cmr-12">extentions of the PSBLAS infrastructure. The inter-process comunication infrastructure. The inter-process comunication required by AMG4PSBLAS +class="cmr-12">required by AMG4PSBLAS is encapsulated in the PSBLAS routines; therefore, is encapsulated in the PSBLAS routines; therefore, AMG4PSBLAS can be +class="cmr-12">AMG4PSBLAS can be run on any parallel machine where PSBLAS implementations run on any parallel machine where PSBLAS implementations are available. +class="cmr-12">are available. The most recent version of PSBLAS (release 3.9) includes a plug-in for In the most recent version of PSBLAS (release 3.7), a plug-in for GPU is -included; it includes CUDA versions of main vector operations and of sparse +class="cmr-12">GPU; it contains CUDA versions of main vector operations and of sparse matrix-vector multiplication, so that Krylov methods coupled with AMG4PSBLAS preconditioners relying on Jacobi and block-Jacobi smoothers with class="cmr-12">approximate inverses on the blocks can be efficiently executed on cluster of GPUs. -

AMG4PSBLAS has a layered and modular software architecture where three main layers can be identified. The lower layer consists of the PSBLAS kernels, the middle one implements the construction and application phases of the preconditioners, and the +upper one provides a uniform interface to all the preconditioners. This architecture -upper one provides a uniform interface to all the preconditioners. This architecture allows for different levels of use of the package: few black-box routines at the upper  6). -

This guide is organized as follows. General information on the distribution of the source code is reported in Section. Most Fortran compilers provide this feature; in particular, thi supported by the GNU Fortran compiler, for which we recommend to use at least version 4.8. The software defines data types and interfaces for real and complex data, +class="cmr-12">version 12. The software defines data types and interfaces for real and complex data, in in both single and double precision. +class="cmr-12">both single and double precision.

Building AMG4PSBLAS requires some base libraries (see Section “developer” part; in order to build AMG4PSBLAS you ne class="cmr-12">the base and optional software used by AMG4PSBLAS is given in the next sections. -

+

3.1 Prerequisites

-

The following base libraries are needed:

-

+

BLAS

-

[18for including -fPIC compilation option in the make.inc file of th library.

-

+

MPI

-

[25A version of MPI is available on most high-performance computing< systems.

-

+

PSBLAS

-

[21; version class="cmr-12">3.9.0 (or later) is required. Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.

-

Please note that the four previous libraries must have Fortran interfaces compatible with AMG4PSBLAS; usually this means that they should all be built with the same compiler being used for AMG4PSBLAS. -

If you want to use the PSBLAS support for NVIDIA GPUs, you will also need a working version of the CUDA Toolkit that is compatible with the @@ -214,7 +214,7 @@ class="cmr-12">options:

 ./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
 
-

Previous versions required you to have the auxiliary libraries SPGPU and PSBLAS-EXT compiled, this is no longer necessary because they have been integrated @@ -226,24 +226,24 @@ class="cmr-12"> 4.2. -

+

3.2 Optional third party libraries

-

We provide interfaces to the following third-party software libraries; note that these are optional, but if you enable them some defaults for multilevel preconditioners may change to reflect their presence. -

+

-

+

UMFPACK

-

[16provide the right path to the BLAS and LAPACK libraries class="cmtt-12">SuiteSparse_config/SuiteSparse_config.mk file.

-

+

MUMPS

-

[2solution for single and double precision, real and complex data. versions 4.10.0 and 5.0.1.

-

+

SuperLU

-

[17data. We tested versions 4.3 and 5.0. If you installed BLAS from remember to define the BLASLIB variable in the make.inc file.

-

+

SuperLU_Dist

-

[28parallel graph partitioning and fill-reducing matrix ordering, av href="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview" class="url" >glaros.dtc.umn.edu/gkhome/metis/parmetis/overview.

-

+

3.3 Configuration options

-

In order to build AMG4PSBLAS, the first step is to use the configure script in the main directory to generate the necessary makefile. -

As a minimal example consider the following: @@ -360,7 +360,7 @@ class="cmr-12">As a minimal example consider the following:

 ./configure --with-psblas=PSB-INSTALL-DIR
 
-

which assumes that the various MPI compilers and support libraries are available in the standard directories on the system, and specifies only the PSBLAS install directory @@ -374,7 +374,7 @@ class="cmtt-12">./configure --help, which produces:

produces:  
configure/issues>.
    
-

For instance, if a user has built and installed PSBLAS 3.7 under the

For instance, if a user has built and installed PSBLAS 3.9 under the /opt directory and is might be configured with:

-./configure --with-psblas=/opt/psblas-3.7/ \
+./configure --with-psblas=/opt/psblas-3.9/ \
 --with-umfpackincdir=/usr/include/suitesparse/
 
-

Once the configure script has completed execution, it will have generated the file Make.inc which will then be used by all Makefiles in the directory tree; t class="cmr-12">copied in the install directory under the name Make.inc.AMG4PSBLAS. -

To use the MUMPS solver package, the user has to add the appropriate options to the configure script; by default we are looking for the libraries --with-extra-libs configure option. -

To build the library the user will now enter @@ -3962,7 +3962,7 @@ class="cmr-12">To build the library the user will now enter

 make
 
-

followed (optionally) by @@ -3970,12 +3970,12 @@ class="cmr-12">followed (optionally) by

 make install
 
-

+

3.4 Bug reporting

-

If you find any bugs in our codes, please report them through our issues page on
https://github.com/psctoolkit/psctoolkit/issues
-

To enable us to track the bug, please provide a log from the failing application, the test conditions, and ideally a self-contained test program reproducing the issue. -

+

3.5 Example and test programs

-

The package contains a samples directory, divided in two subdirs subdirectories. Their purpose is as follows:

-

+

simple

-

contains a set of simple example programs with a predefined choice of preconditioners, selectable via integer values. These are intended to get acquainted with the multilevel preconditioners available in AMG4PSBLAS.

-

+

advanced

-

contains a set of more sophisticated examples that will allow the user, via the input files in the runs subdirectories, to experiment with the full range of preconditioners implemented in the package.

-

The fileread directories contain sample programs that read sparse matrices from files, diff --git a/docs/html/userhtmlse4.html b/docs/html/userhtmlse4.html index 286b0483..493821fa 100644 --- a/docs/html/userhtmlse4.html +++ b/docs/html/userhtmlse4.html @@ -351,7 +351,7 @@ class="content">Preconditioner types, corresponding strings and default choices.


-

Note that the module amg_prec_mod, containing the definition of the preconditioner 4.1).
-

Remark 1. Coarsest-level solvers based on the LU factorization, such as those problems. However, this does not necessarily correspond to the sh on parallel computers. +

Remark 2. Memory allocation on GPUs is a costly operation implying a +synchronization; therefore, it is convenient to preallocate internal preconditioner +workspace with the method prec%allocate_wrk(info) before invoking an iterative +method, and release it upon exit with prec%deallocate_wrk(info).

4.1 Examples

-

The code reported in Figure and ps class="cmr-12">must be used by the example program. -

The part of the code dealing with reading and assembling the sparse matrix and the right-hand side vector and the deallocation of the relevant data structures, performed @@ -451,7 +464,7 @@ href="userhtmlli3.html#XPSBLASGUIDE">21]. -

The setup and application of the default multilevel preconditioner for the real single precision and the complex, single and double precision, versions are obtained @@ -461,6 +474,9 @@ class="cmr-12"> 5 for + + + details). If these versions are installed, the corresponding codes are available in . -


@@ -478,7 +494,7 @@ class="cmr-12">.
-

+

@@ -535,7 +551,7 @@ class="cmr-12">.   call psb_exit(ctxt)   stop

-

+

@@ -548,7 +564,7 @@ class="content">setup and application of the default multilevel preconditioner (


-

Different versions of the multilevel preconditioner can be obtained by changing the default values of the preconditioner parameters. The code reported in Figure2 shows how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre- +class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre- and and post-smoother, and solves the coarsest-level system with 8 block-Jacobi +class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-Jacobi sweeps. Note sweeps. Note that the ILU(0) factorization (plus triangular solve) is used as +class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the local solver for the block-Jacobi sweeps, since this is the default associated +class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi and set with block-Jacobi and set byby P%init. Furthermore, specifying block-Jacobi as -coarsest-level solver implies that the coarsest-level matrix is distributed among +class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level solver implies that the processes. Figurethe coarsest-level matrix is distributed among the processes. Figure 3 shows how to set a W-cycle preconditioner using the +class="cmr-12">shows how Coarsening based on Compatible Weighted Matching, aggregates of size at +class="cmr-12">to set a W-cycle preconditioner using the Coarsening based on Compatible most 8 and smoothed prolongators. It applies 2 hybrid Gauss-Seidel sweeps as +class="cmr-12">Weighted Matching, aggregates of size at most 8 and smoothed prolongators. It pre- and post-smoother, and solves the coarsest-level system with the parallel +class="cmr-12">applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, and solves the flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi +class="cmr-12">coarsest-level system with the parallel flexible Conjugate Gradient method (KRM) preconditioner having ILU(0) on the blocks. Default parameters are used for stopping +class="cmr-12">coupled with the block-Jacobi preconditioner having ILU(0) on the blocks, with criterion of the coarsest solver. Note that, also in this case, specifying KRM as +class="cmr-12">default parameters used for the coarsest solver. Note that specifying KRM as coarsest-level solver implies that the coarsest-level matrix is distributed among the processes. -

The code fragments shown in Figures are included in the example program class="cmr-12">file amg_dexample_ml.f90 too. -

Finally, Figure nonsymmetric. The corresponding example program is available in t amg_dexample_1lev.f90. -

For all the previous preconditioners, example programs where the sparse matrix and the right-hand side are generated by discretizing a PDE with Dirichlet @@ -631,7 +645,7 @@ class="cmr-12">. -


@@ -639,7 +653,7 @@ class="cmr-12">.
-

+

 ... ...
 ! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
@@ -653,7 +667,7 @@ class="cmr-12">.
   call P%smoothers_build(A,desc_A,info)
 ... ...
 
-

+


Listing 2: setup of a multilevel preconditioner based on the default decoupled coarsening
@@ -664,7 +678,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup -


@@ -672,7 +686,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
-

+

 ... ...
 ! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
@@ -692,7 +706,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
   call P%smoothers_build(A,desc_A,info)
 ... ...
 
-

+


Listing 3: setup of a multilevel preconditioner based on the coupled coarsening using @@ -704,7 +718,7 @@ weighted matching
-


@@ -712,7 +726,7 @@ weighted matching
-

+

 ... ...
 ! set RAS with overlap 2 and ILU(0) on the local blocks
@@ -723,7 +737,7 @@ weighted matching
! solve Ax=b with preconditioned BiCGSTAB   call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info) -

+


Listing 4: setup of a one-level Schwarz preconditioner.
@@ -735,7 +749,7 @@ class="content">setup of a one-level Schwarz preconditioner.

The code discussed here shows how to set up a program exploiting the combined GPU capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the @@ -743,14 +757,14 @@ class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is availa class="cmr-12">source distribution directory amg4psblas/examples/gpu. -

First of all, we need to include the appropriate modules and declare some auxiliary variables: -


@@ -758,7 +772,7 @@ class="cmr-12">variables:
-

+

 program amg_dexample_gpu
   use psb_base_mod
@@ -777,7 +791,7 @@ program amg_dexample_gpu
 
  
 
-

+


Listing 5: setup of a GPU-enabled test program part one.
@@ -785,7 +799,7 @@ class="content">setup of a GPU-enabled test program part one.

In this particular example we are choosing to employ a HLG data structure for @@ -793,14 +807,14 @@ class="cmr-12">data structure for class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS users’ guide. -

We then have to initialize the GPU environment, and pass the appropriate MOLD variables to the build methods (see also the PSBLAS users’ guide). -


@@ -808,7 +822,7 @@ class="cmr-12">variables to the build methods (see also the PSBLAS users’
-

+

   call psb_init(ctxt)
   call psb_info(ctxt,iam,np)
@@ -823,7 +837,7 @@ class="cmr-12">variables to the build methods (see also the PSBLAS users’
 
  
 
-

+


Listing 6: setup of a GPU-enabled test program part two.
@@ -831,7 +845,7 @@ class="content">setup of a GPU-enabled test program part two.

Finally, we convert the input matrix, the descriptor and the vectors to use a GPU-enabled internal storage format. We then preallocate the preconditioner @@ -842,7 +856,7 @@ class="cmr-12">GPU environment -


@@ -850,7 +864,7 @@ class="cmr-12">GPU environment
-

+

   call desc_a%cnv(mold=igmold)
   call a%cscnv(info,mold=agmold)
@@ -877,7 +891,7 @@ class="cmr-12">GPU environment
 
  
 
-

+


Listing 7: setup of a GPU-enabled test program part three.
@@ -885,7 +899,7 @@ class="content">setup of a GPU-enabled test program part three.

It is very important to employ smoothers and coarsest solvers that are suited to the GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that @@ -893,30 +907,30 @@ class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kern class="cmr-12">satisfy this constraint include:

  • -

    JACOBI

  • -

    BJAC with the following methods on the local blocks:

    • -

      INVK

    • -

      INVT

    • -

      AINV

  • -

    POLY

-

and their 1 point-Jacobi, hybrid (forward) Gauss-Seidel, and hybrid backward class="cmr-12">the previous smoothers can be defined just by setting SMOOTHER_TYPE to certain specific values (see Tablescertain specific values (see Table 7accelerated using the specified polynomial smoothing technique. B 1-Jacobi smoother serves as the base smoother, offering theoretical guarantees on the +class="cmr-12">-Jacobi smoother serves as the base smoother, offering theoretical guarantees resulting convergence factoron the resulting convergence factor [ 27]. Alternative combinations are experimental and +class="cmr-12">. Alternative combinations are lack established guarantees.
experimental.
-

Remark 4. Many of the coarsest-level solvers apply to a specific coarsest-matrix layout; therefore, setting the solver after the layout may change the layout to either distributed or replicated. Similarly, setting the layout after the solver may change the +class="cmr-12">distributed or replicated, and similarly, setting the layout after the solver may solver. -

More precisely, UMFPACK and SuperLU require the coarsest-level matrix to be +class="cmr-12">change the solver. More specifically, UMFPACK and SuperLU require the replicated, while SuperLU_Dist and KRM require it to be distributed. In these cases, +class="cmr-12">coarsest-level matrix to be replicated, while SuperLU_Dist and KRM require it to setting the coarsest-level solver implies that the layout is redefined according to the +class="cmr-12">be distributed; therefore, setting the coarsest-level solver implies that the solver, ovverriding any previous settings. MUMPS, point-Jacobi, hybrid Gauss-Seidel +class="cmr-12">layout is redefined according to the solver, ovverriding any previous settings. and block-Jacobi can be applied to replicated and distributed matrices, thus their +class="cmr-12">MUMPS, point-Jacobi, hybrid Gauss-Seidel and block-Jacobi can be applied to choice does not modify any previously specified layout. It is worth noting that, when +class="cmr-12">replicated and distributed matrices, thus their choice does not modify any the matrix is replicated, the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers +class="cmr-12">previously specified layout. It is worth noting that, when the matrix is replicated, and their the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers and their 1- - +versions reduce to the corresponding local solver objects (see Remark 2). +class="cmr-12"> 2). For the For the point-Jacobi and Gauss-Seidel solvers, these objects correspond to a point-Jacobi and Gauss-Seidel solvers, these objects correspond to a single point-Jacobi sweep and a single Gauss-Seidel sweep, respectively, which are very poor solvers. -

On the other hand, the distributed layout can be used with any solver but +

On the other hand, the distributed layout can be used with any solver except and UMFPACK and SuperLU; therefore, if any of these two solvers has already been +class="cmr-12">SuperLU; therefore, if any of these two solvers has already been selected, the selected, the coarsest-level solver is changed to block-Jacobi, with the previously chosen +class="cmr-12">coarsest-level solver is changed to block-Jacobi, with the previously chosen solver solver applied to the local blocks. Likewise, the replicated layout can be used with any +class="cmr-12">applied to the local blocks. Likewise, the replicated layout can be used with any solver solver but SuperLubut SuperLu_Dist and KRM; therefore, if SuperLu_Dist or KRM have been previously set, the coarsest-level solver is changed to the default sequential solver. -

In a parallel setting with many cores, we suggest to the users to change the default coarsest solver for using the KRM choice, i.e. a parallel distributed iterative solution of @@ -615,7 +614,7 @@ class="cmr-12">the coarsest system based on Krylov methods. -

Remark 4. The argument idx can be used to allow finer control for those solvers; @@ -635,7 +634,7 @@ class="cmr-12">. -


@@ -643,7 +642,7 @@ class="cmr-12">.
-

+

+class="td11">

1

Parameters defining the aggregation algorithm.


@@ -948,7 +947,7 @@ class="content">Parameters defining the aggregation algorithm.

+






what

what

dtype

val

val

deault

cots






ML_CYCLE

character(len=*)

VCYCLE -

WCYCLE -

KCYCLE -

ADD

VCYCLE

Multilevel cycle: V-cycle, W-cycle, K-cycle, +class="td11">

ML_CYCLE

character(len=*)

VCYCLE +

WCYCLE +

KCYCLE +

ADD

VCYCLE

Multilevel cycle: V-cycle, W-cycle, K-cycle, and additive composition.






CYCLE_SWEEPS

integer

Any integer -

number

CYCLE_SWEEPS

integer

Any integer +

number 1

1

Number of multilevel cycles.

Number of multilevel cycles.






-


@@ -731,7 +730,7 @@ applied.
-

+

@@ -745,7 +744,7 @@ id="TBL-5-4">






what

what

dtype

val

val

deault

cots






MIN_COARSE_SIZE_PER_PROCESS

integer

Any number -

MIN_COARSE_SIZE_PER_PROCESS

integer

Any number +

> 0

200

Coarse size threshold per process. The +class="td11">

200

Coarse size threshold per process. The aggregation stops if the global number of variables of the computed coarsest matrix is lower than or equal to this @@ -793,13 +792,13 @@ processes (see Note).






MIN_COARSE_SIZE

integer

Any number -

MIN_COARSE_SIZE

integer

Any number +

> 0

-1

Coarse size threshold. The aggregation +class="td11">

-1

Coarse size threshold. The aggregation stops if the global number of variables of the computed coarsest matrix is lower than or equal to this @@ -809,13 +808,13 @@ ignored in favour of the default for






MIN_CR_RATIO

real

Any number -

MIN_CR_RATIO

real

Any number +

> 1

1.5

Minimum coarsening ratio. The +class="td11">

1.5

Minimum coarsening ratio. The aggregation stops if the ratio between the global matrix dimensions at two consecutive levels is lower than or @@ -823,30 +822,30 @@ equal to this threshold (see Note).






MAX_LEVS

integer

Any integer -

number

MAX_LEVS

integer

Any integer +

number > 1

20

Maximum number of levels. The +class="td11">

20

Maximum number of levels. The aggregation stops if the number of levels reaches this value (see Note).






PAR_AGGR_ALG

character(len=*)

PAR_AGGR_ALG

character(len=*)

’DECOUPLED’, ’SYMDEC’, ’COUPLED’

’DECOUPLED’

Parallel aggregation algorithm. -

the SYMDEC option applies decoupled +class="td11">

Parallel aggregation algorithm. +

the SYMDEC option applies decoupled aggregation to the sparsity pattern of A + T .






AGGR_TYPE

character(len=*)

SOC1, +class="td11">

AGGR_TYPE

character(len=*)

SOC1, SOC2, MATCHBOXP

SOC1

Type +class="td11">

SOC1

Type of aggregation algorithm: currently, for the decoupled aggregation we implement two measures of strength @@ -878,18 +877,18 @@ href="userhtmlli3.html#XMatchBoxP">9].






AGGR_SIZE

integer

Any integer -

power of 2, +class="td11">

AGGR_SIZE

integer

Any integer +

power of 2, with aggr_size 2

4

Maximum size of aggregates when +class="td11">

4

Maximum size of aggregates when the coupled aggregation based on matching is applied. For aggressive coarsening with size of aggregate @@ -901,12 +900,12 @@ class="cmtt-10x-x-109">’MATCHBOXP’






AGGR_PROL

character(len=*)

SMOOTHED, +class="td11">

AGGR_PROL

character(len=*)

SMOOTHED, UNSMOOTHED

SMOOTHED

Prolongator used by the aggregation +class="td11">

SMOOTHED

Prolongator used by the aggregation algorithm: smoothed or unsmoothed (i.e., tentative prolongator).

Parameters defining the aggregation algorithm (continued).


@@ -1068,7 +1067,7 @@ class="content">Parameters defining the aggregation algorithm (continued). -

+

@@ -1082,7 +1081,7 @@ id="TBL-7-4">

@@ -1332,7 +1331,7 @@ class="content">Parameters defining the solver at the coarsest level (continued) -


@@ -1340,7 +1339,7 @@ class="content">Parameters defining the solver at the coarsest level (continued)
-

+

@@ -1354,7 +1353,7 @@ id="TBL-8-4">

+class="td11">

The stopping tolerance.

Additional parameters defining the solver at the coarsest level. -


@@ -1639,7 +1638,7 @@ class="content">Additional parameters defining the solver at the coarsest level.
-

+






what

what

dtype

val

val

deault

cots






AGGR_ORD

character(len=*)

AGGR_ORD

character(len=*)

’NATURAL’ -

’DEGREE’

’NATURAL’

Initial ordering of indices for +class="td11">

Initial ordering of indices for the decoupled aggregation algorithm: either natural ordering or sorted by descending degrees of the nodes in the @@ -1008,30 +1007,30 @@ matrix graph.






AGGR_THRESH

real(kind_parameter)

Any real -

number 

AGGR_THRESH

real(kind_parameter)

Any real +

number  [0,1]

0.01

The threshold

0.01

The threshold θ in the strength of connection algorithm. See also the note at the bottom of this table.






AGGR_FILTER

character(len=*)

AGGR_FILTER

character(len=*)

’FILTER’ -

’NOFILTER’

’NOFILTER’

Matrix used in computing the smoothed +class="td11">

Matrix used in computing the smoothed prolongator: filtered or unfiltered.











what

what

dtype

val

val

deault

cots






COARSE_MAT

character(len=*)

DIST -

REPL

REPL

Coarsest matrix layout: distributed among the +class="td11">

COARSE_MAT

character(len=*)

DIST +

REPL

REPL

Coarsest matrix layout: distributed among the processes or replicated on each of them.






COARSE_SOLVE

character(len=*)

MUMPS -

UMF -

SLU -

SLUDIST -

ILU -

JACOBI -

GS -

BJAC -

KRM -

L1-JACOBI -

L1-BJAC -

L1-FBGS

See Note.

Solver used at the coarsest level: sequential +class="td11">

COARSE_SOLVE

character(len=*)

MUMPS +

UMF +

SLU +

SLUDIST +

ILU +

JACOBI +

GS +

BJAC +

KRM +

L1-JACOBI +

L1-BJAC +

L1-FBGS

See Note.

Solver used at the coarsest level: sequential LU from MUMPS, UMFPACK, or SuperLU (plus triangular solve); distributed LU from MUMPS or SuperLU_Dist (plus triangular solve); @@ -1170,20 +1169,20 @@ double precision.






COARSE_SUBSOLVE

character(len=*)

ILU -

ILUT -

MILU -

MUMPS -

SLU -

SLUDIST -

UMF -

INVT -

INVK -

AINV

See Note.

Solver for the diagonal blocks of the coarsest +class="td11">

COARSE_SUBSOLVE

character(len=*)

ILU +

ILUT +

MILU +

MUMPS +

SLU +

SLUDIST +

UMF +

INVT +

INVK +

AINV

See Note.

Solver for the diagonal blocks of the coarsest matrix, in case the block Jacobi solver is chosen as coarsest-level solver: ILU(p), ILU(ILU otherwise.






what

what

dtype

val

val

deault

cos






COARSE_SWEEPS

integer

Any +class="td11">

COARSE_SWEEPS

integer

Any integer number > 0

10

Number of sweeps when JACOBI, GS or BJAC is +class="td11">

10

Number of sweeps when JACOBI, GS or BJAC is chosen as coarsest-level solver.






COARSE_FILLIN

integer

Any +class="td11">

COARSE_FILLIN

integer

Any integer number 0

0

Fill-in level

0

Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses.






COARSE_ILUTHRS

real(kind_parameter)

Any real +class="td11">

COARSE_ILUTHRS

real(kind_parameter)

Any real number 0

0

Drop tolerance

0

Drop tolerance t in the ILU(p,t) factorization and first drop-tolerance for the approximate inverses.






what

what

dtype

val

val

deault

cots






BJAC_STOP

character(len=*)

FALSE -

TRUE

FALSE

Select whether to use a stopping criterion for +class="td11">

BJAC_STOP

character(len=*)

FALSE +

TRUE

FALSE

Select whether to use a stopping criterion for the Block-Jacobi method used as a coarse solver.






BJAC_TRACE

character(len=*)

FALSE -

TRUE

FALSE

Select whether to print a trace for the +class="td11">

BJAC_TRACE

character(len=*)

FALSE +

TRUE

FALSE

Select whether to print a trace for the calculated residual for the Block-Jacobi method used as a coarse solver.






BJAC_ITRACE

integer

Any integer -

BJAC_ITRACE

integer

Any integer +

> 0

-1

Number of iterations after which a trace is to +class="td11">

-1

Number of iterations after which a trace is to be printed.






BJAC_RESCHECK

integer

Any integer -

BJAC_RESCHECK

integer

Any integer +

> 0

-1

Number of iterations after which a residual is +class="td11">

-1

Number of iterations after which a residual is to be calculated.






BJAC_STOPTOL

real(kind_parameter)

Any real -

BJAC_STOPTOL

real(kind_parameter)

Any real +

< 1

0

Tolerance for the stopping criterion on the +class="td11">

0

Tolerance for the stopping criterion on the residual.






KRM_METHOD

character(len=*)

CG -

FCG -

CGS -

CGR -

BICG -

BICGSTAB -

BICGSTABL -

RGMRES

FCG

A string that defines the iterative method to +class="td11">

KRM_METHOD

character(len=*)

CG +

FCG +

CGS +

CGR +

BICG +

BICGSTAB +

BICGSTABL +

RGMRES

FCG

A string that defines the iterative method to be used when employing a Krylov method KRM as a coarse solver. CG the Conjugate @@ -1482,24 +1481,24 @@ information.






KRM_KPREC

character(len=*)

Table 

KRM_KPREC

character(len=*)

Table 1

BJAC

The one-level +class="td11">

BJAC

The one-level preconditioners from the Table 1 can be used for the coarse Krylov solver.






KRM_SUB_SOLVE

character(len=*)

Table 

KRM_SUB_SOLVE

character(len=*)

Table 5

ILU

Solver for the diagonal blocks of the coarsest +class="td11">

ILU

Solver for the diagonal blocks of the coarsest matrix preconditioner, in case the block Jacobi solver is chosen as KRM_KPREC: ILU(5 applies here.






KRM_GLOBAL

character(len=*)

TRUE, +class="td11">

KRM_GLOBAL

character(len=*)

TRUE, FALSE

FALSE

Choose between a global Krylov solver, all +class="td11">

FALSE

Choose between a global Krylov solver, all unknowns on a single node, or a distributed one. The default choice is the distributed solver.






KRM_EPS

real(kind_parameter)

Real

KRM_EPS

real(kind_parameter)

Real < 1

10

10-6

The stopping tolerance.






KRM_IRST

integer

Integer -

KRM_IRST

integer

Integer +

1

30

An integer specifying the restart parameter. +class="td11">

30

An integer specifying the restart parameter. This is employed for the BiCGSTABL or RGMRES @@ -1560,12 +1559,12 @@ methods, otherwise it is ignored.






KRM_ISTOPC

integer

Integers +class="td11">

KRM_ISTOPC

integer

Integers 1,2,3

2

If

2

If 1 then the method uses the normwise backward error in the infinity norm; if 2, the @@ -1578,24 +1577,24 @@ for the details.






KRM_ITMAX

integer

Integer -

KRM_ITMAX

integer

Integer +

1

40

The maximum number of iterations to +class="td11">

40

The maximum number of iterations to perform.






KRM_ITRACE

integer

Integer -

KRM_ITRACE

integer

Integer +

0

-1

If

-1

If > 0 print out an informational message about convergence every KRM_ITRACE iterations. If = 0 print a @@ -1603,13 +1602,13 @@ message in case of convergence failure.






KRM_FILLIN

integer

Integer -

KRM_FILLIN

integer

Integer +

0

0

Fill-in level

0

Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses.






what

what

dtype

val

val

deault

cots






SMOOTHER_TYPE

character(len=*)

JACOBI -

GS -

BGS -

BJAC -

AS -

L1-JACOBI -

L1-BJAC -

L1-FBGS -

POLY

FBGS

SMOOTHER_TYPE

character(len=*)

JACOBI +

GS +

BGS +

BJAC +

AS +

L1-JACOBI +

L1-BJAC +

L1-FBGS +

POLY

FBGS

Type of smoother used in the multilevel preconditioner: point-Jacobi, hybrid @@ -1726,26 +1725,26 @@ class="cmr-10">] class="cmr-10">and Remark 3 (p. 21). -

It is ignored by one-level preconditioners.






SUB_SOLVE

character(len=*)

JACOBI +class="td11">

SUB_SOLVE

character(len=*)

JACOBI GS -

BGS -

ILU -

ILUT -

MILU -

MUMPS -

SLU -

UMF -

INVT -

INVK -

AINV

BGS +

ILU +

ILUT +

MILU +

MUMPS +

SLU +

UMF +

INVT +

INVK +

AINV

GS and BGS multilevel class="cmr-10">preconditioners, respectively -

ILU for block-Jacobi and Additive Schwarz class="cmr-10">one-level preconditioners

The local solver to be used with the smoother or one-level preconditioner (see @@ -1823,18 +1822,18 @@ class="cmr-10">Note for details on hybrid Gauss-Seidel.






SMOOTHER_SWEEPS

integer

SMOOTHER_SWEEPS

integer

Any integer -

number 0

1

Number of sweeps of the smoother or one-level preconditioner. In the multilevel @@ -1852,11 +1851,11 @@ class="cmr-10">respectively. Is ignored if the smoother is






POLY_DEGREE

integer

POLY_DEGREE

integer

Any integer -

number and 30

1

Degree of the polynomial accelerator, is equal to the number of matrix-vector @@ -1893,7 +1892,7 @@ preconditioner. -


@@ -1901,7 +1900,7 @@ preconditioner.
-

+






what

what

dtype

val

val

deault

cots






SUB_OVR

integer

SUB_OVR

integer

Any integer -

number 0

1

Number of overlap layers, for Additive Schwarz only.

SUB_RESTR

character(len=*)

HALO -

NONE

HALO

SUB_RESTR

character(len=*)

HALO +

NONE

HALO

Type of restriction operator, for Additive Schwarz only: for taking into account the overlap, NONE for neglecting it. -

Note that HALO must be chosen for the @@ -1987,12 +1986,12 @@ class="cmr-10">its RAS variant.






SUB_PROL

character(len=*)

SUM -

NONE

NONE

SUB_PROL

character(len=*)

SUM +

NONE

NONE

Type of prolongation operator, for Additive Schwarz only: SUM contributions from the overlap, for neglecting them. -

Note that SUM must be chosen for the for its RAS variant.






SUB_FILLIN

integer

SUB_FILLIN

integer

Any integer -

number 0

0

Fill-in level p of the incomplete LU @@ -2032,18 +2031,18 @@ class="cmr-10">factorizations.






SUB_ILUTHRS

real(kind_parameter)

SUB_ILUTHRS

real(kind_parameter)

Any real number 0

0

Drop tolerance t in the ILU(factorization.






MUMPS_LOC_GLOB

character(len=*)

LOCAL_SOLVER -

GLOBAL_SOLVER

GLOBAL_SOLVER

MUMPS_LOC_GLOB

character(len=*)

LOCAL_SOLVER +

GLOBAL_SOLVER

GLOBAL_SOLVER

Whether MUMPS should be used as a distributed solver, or as a serial solver acting @@ -2070,15 +2069,15 @@ class="cmr-10">process.






MUMPS_IPAR_ENTRY

integer

MUMPS_IPAR_ENTRY

integer

Any integer number

0

Set an entry in the MUMPS integer control array, as chosen via the idx argument.






MUMPS_RPAR_ENTRY

real

MUMPS_RPAR_ENTRY

real

Any real number

0

Set an entry in the MUMPS real control array, as chosen via the idx Parameters defining the smoother or the details of the one-level -


@@ -2126,7 +2125,7 @@ class="content">Parameters defining the smoother or the details of the one-level
-

+






what

what

dtype

val

val

deault

cots






POLY_VARIANT

character(len=*)

CHEB_4 -

CHEB_4_OPT -

CHEB_1_OPT

CHEB_4

POLY_VARIANT

character(len=*)

CHEB_4 +

CHEB_4_OPT +

CHEB_1_OPT

CHEB_4

Select the type of polynomial accelerator. @@ -2226,11 +2225,11 @@ class="cmr-10">-kind.






POLY_RHO_ESTIMATE

character(len=*)

POLY_RHO_EST_POWER

POLY_RHO_EST_POWER

POLY_RHO_ESTIMATE

character(len=*)

POLY_RHO_EST_POWER

POLY_RHO_EST_POWER

Algorithm for estimating the spectral @@ -2253,17 +2252,17 @@ class="cmr-10">two following options.






POLY_RHO_ESTIMATE_ITERATIONS

integer

POLY_RHO_ESTIMATE_ITERATIONS

integer

Any integer -

number 1

20

Number of iterations for the spectral radius @@ -2272,19 +2271,19 @@ class="cmr-10">estimate.






POLY_RHO_BA

real(kind_parameter)

POLY_RHO_BA

real(kind_parameter)

Any real -

number (0,1]

1

Sets an estimate of the spectral radius of @@ -2317,10 +2316,10 @@ class="cmr-12">Method hierarchy_build

-

-

call p%hierarchy_build(a,desc_a,info)
+

+

call p%hierarchy_build(a,desc_a,info)

-

This method builds the hierarchy of matrices and restriction/prolongation operators for the multilevel preconditioner p, according to the requirements made by the user class="cmr-12">through the methods init and set. -

Arguments

Arguments id="TBL-12-1">

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section Method smoothers_build

-

This method builds the smoothers and the coarsest-level solvers for the multilevel preconditioner p 5.3). -

Arguments

Arguments id="TBL-13-1"> @@ -2542,10 +2541,10 @@ class="cmr-12">5.5 Method build
-

-

call p%build(a,desc_a,info[,amold,vmold,imold])
+

+

call p%build(a,desc_a,info[,amold,vmold,imold])

-

This method builds the preconditioner p according to the requirements made by the and class="cmr-12">, whose nomenclature would however be somewhat unnatural when dealing with simple one-level preconditioners. -

Arguments

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -2507,26 +2506,26 @@ class="cmr-12">].

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

imold

class(psb_i_base_vect_type), intent(in), optional

imold

class(psb_i_base_vect_type), intent(in), optional.

The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.

Arguments id="TBL-14-1">

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -2654,33 +2653,33 @@ class="cmr-12">].

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

imold

class(psb_i_base_vect_type), intent(in), optional

imold

class(psb_i_base_vect_type), intent(in), optional.

The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.

-

The method can be used to build multilevel preconditioners too. @@ -2691,10 +2690,10 @@ class="cmr-12">5.6 Method apply

-

This method computes y = and class="cmr-12">hence it is completely transparent to the user, who will almost never invoke it directly. -

Arguments

Arguments id="TBL-15-1"> +class="td11">

trans

x

x

type(kind_parameter), dimension(:), intent(in)—.

The local part of the vector x. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

y

y

type(kind_parameter), dimension(:), intent(out)—.

The local part of the vector y. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor associated to the matrix to be preconditioned.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

trans

character(len=1), optional, intent(in).

character(len=1), optional, intent(in).

If trans = N,n then 1).

work

work

type(kind_parameter), dimension(:), optional, target—.

Workspace. Its size should be at least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User’s Guide). Note that 5.7 Method free

-

This method deallocates the preconditioner data structure p. -

Arguments

Arguments id="TBL-16-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 5.8 Method descr

-

This method prints a description of the preconditioner p to the standard output or to a , or b class="cmr-12">, have been called. -

Arguments

Arguments id="TBL-17-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

iout

integer, intent(in), optional

iout

integer, intent(in), optional.

The id of the file where the preconditioner description will be printed; the default is the standard output.

root

integer, intent(in), optional

root

integer, intent(in), optional.

The id of the process where the preconditioner description will be printed; the default is psb_root_.

verbosity

integer, intent(in), optional

verbosity

integer, intent(in), optional.

The verbosity level of the description. Default value is 0. For values higher than 0, it prints out further information, e.g., for @@ -3009,31 +3008,31 @@ class="cmr-12">matrices on every process.

-

+

5.9 Auxiliary Methods

-

Various functionalities are implemented as additional methods of the preconditioner object. -

+

5.9.1 Method: dump
-

-

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])
+

+

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])

-

Dump on file.

Dump on file. +

Arguments

Arguments id="TBL-18-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -3076,19 +3075,19 @@ class="cmr-12">.

-

+

5.9.2 Method: clone
-

-

call p%clone(pout,info)
+

+

call p%clone(pout,info)

-

Create a (deep) copy of the preconditioner object.

Create a (deep) copy of the preconditioner object. +

Arguments

Arguments id="TBL-19-1">

pout

type(amg_

pout

type(amg_xprec_type), intent(out).

The copy of the preconditioner data structure. Note that x must @@ -3115,13 +3114,13 @@ class="cmr-12">, single/double precision class="cmr-12">version of AMG4PSBLAS under use.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section for details.

-

+

5.9.3 Method: sizeof
-

-

sz = p%sizeof([global])
+

+

sz = p%sizeof([global])

Method: sizeof id="TBL-20-1">

global

logical, optional

global

logical, optional.

Whether the global or local preconditioner memory occupation is desired. Default: .false.Return memory footprint in bytes. -

+

5.9.4 Method: allocate_wrk
-

-

call p%allocate_wrk(info[, vmold])
+

+

call p%allocate_wrk(info[, vmold])

-

Allocate internal work vectors. Each application of the preconditioner uses a number of work vectors which are allocated internally as necessary; therefore allocation and @@ -3202,7 +3201,7 @@ class="cmr-12">taken care of based on the dynamic type of the argument to the apply method. -

Arguments

Arguments id="TBL-21-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

-

+

5.9.5 Method: deallocate_wrk
-

-

call p%deallocate_wrk(info)
+

+

call p%deallocate_wrk(info)
call p%free_wrk(info)

-

Deallocate internal work vectors.

Deallocate internal work vectors. +

Arguments

Arguments id="TBL-22-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section . +

+ + + diff --git a/docs/html/userhtmlse8.html b/docs/html/userhtmlse8.html index 0b786932..67408b51 100644 --- a/docs/html/userhtmlse8.html +++ b/docs/html/userhtmlse8.html @@ -38,46 +38,47 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright

 
-                           AMG4PSBLAS  version 1.0
-              Algebraic MultiGrid Preconditioners Package
-             based on PSBLAS (Parallel Sparse BLAS version 3.7)
 
-  (C) Copyright 2021
-
-  Pasqua D’Ambra         IAC-CNR, IT
-  Fabio Durastante       University of Pisa and IAC-CNR, IT
-  Salvatore Filippone    University of Rome Tor-Vergata and IAC-CNR, IT
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-    1. Redistributions of source code must retain the above copyright
-       notice, this list of conditions and the following disclaimer.
-    2. Redistributions in binary form must reproduce the above copyright
-       notice, this list of conditions, and the following disclaimer in the
-       documentation and/or other materials provided with the distribution.
-    3. The name of the MLD2P4 group or the names of its contributors may
-       not be used to endorse or promote products derived from this
-       software without specific written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
-  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
+                             AMG4PSBLAS version 1.2
+    Algebraic Multigrid Package
+               based on PSBLAS (Parallel Sparse BLAS version 3.9)
+
+    (C) Copyright 2025
+
+        Salvatore Filippone
+        Pasqua D’Ambra
+        Fabio Durastante
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+      1. Redistributions of source code must retain the above copyright
+         notice, this list of conditions and the following disclaimer.
+      2. Redistributions in binary form must reproduce the above copyright
+         notice, this list of conditions, and the following disclaimer in the
+         documentation and/or other materials provided with the distribution.
+      3. The name of the AMG4PSBLAS group or the names of its contributors may
+         not be used to endorse or promote products derived from this
+         software without specific written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+    TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
+    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGE.
 
 
-

+

-

AMG4PSBLAS is an evolution of MLD2P4, whose license we reproduce here to abide by its terms: @@ -123,7 +124,7 @@ class="cmr-12">abide by its terms:   POSSIBILITY OF SUCH DAMAGE. -

AMG4PSBLAS is distributed together with (a small part of) the graph-matching @@ -183,7 +184,7 @@ class="cmr-12">here. // // ************************************************************************ -

+

diff --git a/docs/src/abstract.tex b/docs/src/abstract.tex index 74e85b80..d074fa1e 100644 --- a/docs/src/abstract.tex +++ b/docs/src/abstract.tex @@ -4,30 +4,42 @@ \fi \textsc{AMG4PSBLAS (Algebraic MultiGrid Preconditioners Package -based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework. -It is a progress of a software development project started in 2007, named MLD2P4, which originally implemented a -multilevel version of some domain decomposition preconditioners of additive-Schwarz type, and was based on a parallel decoupled version of the well known smoothed +based on PSBLAS}) is a package of parallel algebraic multilevel +preconditioners included in the PSCToolkit (Parallel Sparse +Computation Toolkit) software framework. +It is an evolutiuon of a software development project started in 2007, +named MLD2P4, which originally implemented a +multilevel version of some domain decomposition preconditioners of +additive-Schwarz type, and was based on a parallel decoupled version +of the well known smoothed aggregation method to generate the multilevel hierarchy of coarser matrices. -In the last years, within the context of the EU-H2020 EoCoE project (Energy Oriented Center of Excellence), the package was extended for including new algorithms and -functionalities for the setup and application new AMG preconditioners with the final aims of improving efficiency and scalability when tens of thousands cores are -used, and of boosting reliability in dealing with general symmetric positive definite linear systems. -Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS. +In the last few years the package was extended for +including new algorithms and +functionalities for the setup and application new AMG preconditioners +with the final aims of improving efficiency and scalability when tens +of thousands cores are used, and of boosting reliability in dealing +with general symmetric positive definite linear systems; these +developments have been supported in the context of the EU-H2020 EoCoE +project (Energy Oriented Center of Excellence). +Due to the significant number of changes and the increase in scope, we +decided to rename the package as AMG4PSBLAS. -AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners -in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) -computational framework and can be used in conjuction with the Krylov solvers -available in this framework. +AMG4PSBLAS has been designed to provide scalable and easy-to-use +preconditioners in the context of the PSBLAS (Parallel Sparse Basic +Linear Algebra Subprograms) computational framework and can be used in +conjuction with the Krylov solvers available in this framework. Our package is based on a completely algebraic approach; therefore users level interfaces assume that the system matrix and preconditioners are represented as PSBLAS distributed sparse matrices. AMG4PSBLAS enables the user to easily specify different -features of an algebraic multilevel preconditioner, thus allowing to experiment -with different preconditioners for the problem and parallel computers at hand. +features of an algebraic multilevel preconditioner, thus allowing to +experiment with different preconditioners for the problem and parallel +computers at hand. The package employs object-oriented design techniques in -Fortran~2003, with interfaces to additional third party libraries +Fortran~2003, with interfaces to additional third party libraries such as MUMPS, UMFPACK, SuperLU, and SuperLU\_Dist, which -can be exploited in building multilevel preconditioners. The parallel +can be exploited in building multilevel preconditioners. The parallel implementation is based on a Single Program Multiple Data (SPMD) paradigm; the inter-process communication is based on MPI and is managed mainly through PSBLAS. diff --git a/docs/src/building.tex b/docs/src/building.tex index a4b6aba5..f3a15583 100644 --- a/docs/src/building.tex +++ b/docs/src/building.tex @@ -13,19 +13,20 @@ must support the Fortran~2003 standard plus the extension \verb|MOLD=| feature, which enhances the usability of \verb|ALLOCATE|. Most Fortran compilers provide this feature; in particular, this is supported by the GNU Fortran compiler, for which we -recommend to use at least version 4.8. +recommend to use at least version 12. The software defines data types and interfaces for real and complex data, in both single and double precision. Building AMG4PSBLAS requires some base libraries (see -Section~\ref{sec:prerequisites}); interfaces to optional third-party +Section~\ref{sec:prerequisites}); interfaces to optional third-party libraries, which extend the functionalities of AMG4PSBLAS (see -Section~\ref{sec:third-party}), are also available. A number of Linux -distributions (e.g., Ubuntu, Fedora, CentOS) provide precompiled +Section~\ref{sec:third-party}), are also available. A number of Linux +distributions (e.g., Ubuntu, Fedora, CentOS) provide precompiled packages for the prerequisite and optional software. In many cases these packages are split between a runtime part and a ``developer'' part; in order to build AMG4PSBLAS you need both. A description of the -base and optional software used by AMG4PSBLAS is given in the next sections. +base and optional software used by AMG4PSBLAS is given in the next +sections. \subsection{Prerequisites\label{sec:prerequisites}} @@ -157,17 +158,17 @@ The full set of options may be looked at by issuing the command \else \lstinputlisting{../configureout.txt} \fi -For instance, if a user has built and installed PSBLAS 3.7 under the +For instance, if a user has built and installed PSBLAS 3.9 under the \verb|/opt| directory and is using the SuiteSparse package (which includes UMFPACK), then AMG4PSBLAS might be configured with: \ifpdf \begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{console} -./configure --with-psblas=/opt/psblas-3.7/ --with-umfpackincdir=/usr/include/suitesparse/ +./configure --with-psblas=/opt/psblas-3.9/ --with-umfpackincdir=/usr/include/suitesparse/ \end{minted} \else \begin{verbatim} -./configure --with-psblas=/opt/psblas-3.7/ \ +./configure --with-psblas=/opt/psblas-3.9/ \ --with-umfpackincdir=/usr/include/suitesparse/ \end{verbatim} \fi diff --git a/docs/src/gettingstarted.tex b/docs/src/gettingstarted.tex index 4e1678a2..52b34a3d 100644 --- a/docs/src/gettingstarted.tex +++ b/docs/src/gettingstarted.tex @@ -94,7 +94,6 @@ Multilevel &\fortinline|'ML'| & V-cycle with one hybrid forward Gauss- \label{tab:precinit}} \end{center} \end{table} - Note that the module \fortinline|amg_prec_mod|, containing the definition of the preconditioner data type and the interfaces to the routines of AMG4PSBLAS, must be used in any program calling such routines. @@ -110,6 +109,12 @@ a standard discretization of basic scalar elliptic PDE problems. However, this does not necessarily correspond to the shortest execution time on parallel~computers. +\textbf{Remark 2.} Memory allocation on GPUs is a costly operation +implying a synchronization; therefore, it is convenient to preallocate +internal preconditioner workspace with the method +\verb|prec%allocate_wrk(info)| before invoking an iterative method, +and release it upon exit with \verb|prec%deallocate_wrk(info)|. + \subsection{Examples\label{sec:examples}} @@ -140,7 +145,6 @@ for the real single precision and the complex, single and double precision, versions are obtained with straightforward modifications of the previous example (see Section~\ref{sec:userinterface} for details). If these versions are installed, the corresponding codes are available in \verb|samples/simple/file|\-\verb|read|. - \begin{listing}[tbp] \begin{center} \begin{minipage}{.90\textwidth} @@ -260,7 +264,6 @@ stop \label{fig:ex1}} \end{center} \end{listing} - Different versions of the multilevel preconditioner can be obtained by changing the default values of the preconditioner parameters. The code reported in Figure~\ref{fig:ex2} shows how to set a V-cycle preconditioner @@ -272,10 +275,15 @@ with block-Jacobi and set by~\fortinline|P%init|. Furthermore, specifying block-Jacobi as coarsest-level solver implies that the coarsest-level matrix is distributed among the processes. -Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using the Coarsening based on Compatible Weighted Matching, aggregates of size at most $8$ and smoothed prolongators. It applies +Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using +the Coarsening based on Compatible Weighted Matching, aggregates of +size at most $8$ and smoothed prolongators. It applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, -and solves the coarsest-level system with the parallel flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi preconditioner having ILU(0) on the blocks. Default parameters are used for stopping criterion of the coarsest solver. -Note that, also in this case, specifying KRM as coarsest-level +and solves the coarsest-level system with the parallel flexible +Conjugate Gradient method (KRM) coupled with the block-Jacobi +preconditioner having ILU(0) on the blocks, with default parameters +used for the coarsest solver. +Note that specifying KRM as coarsest-level solver implies that the coarsest-level matrix is distributed among the processes. %It is specified that the coarsest-level diff --git a/docs/src/license.tex b/docs/src/license.tex index a1d6574c..9662ea3a 100644 --- a/docs/src/license.tex +++ b/docs/src/license.tex @@ -6,40 +6,41 @@ AMG4PSBLAS is freely distributable under the following copyright terms: {\small \begin{verbatim} - - AMG4PSBLAS version 1.0 - Algebraic MultiGrid Preconditioners Package - based on PSBLAS (Parallel Sparse BLAS version 3.7) - - (C) Copyright 2021 - - Pasqua D'Ambra IAC-CNR, IT - Fabio Durastante University of Pisa and IAC-CNR, IT - Salvatore Filippone University of Rome Tor-Vergata and IAC-CNR, IT - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the MLD2P4 group or the names of its contributors may - not be used to endorse or promote products derived from this - software without specific written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. + + + AMG4PSBLAS version 1.2 + Algebraic Multigrid Package + based on PSBLAS (Parallel Sparse BLAS version 3.9) + + (C) Copyright 2025 + + Salvatore Filippone + Pasqua D'Ambra + Fabio Durastante + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the AMG4PSBLAS group or the names of its contributors may + not be used to endorse or promote products derived from this + software without specific written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. \end{verbatim} } diff --git a/docs/src/overview.tex b/docs/src/overview.tex index ef31a157..c3c3fd16 100644 --- a/docs/src/overview.tex +++ b/docs/src/overview.tex @@ -3,7 +3,9 @@ {\textsc{\ref{sec:overview} General Overview}} The \textsc{Algebraic MultiGrid Preconditioners Package based on -PSBLAS} (\textsc{AMG\-4\-PSBLAS}) provides parallel Algebraic MultiGrid (AMG) preconditioners (see, e.g., \cite{Briggs2000,Stuben_01}), +PSBLAS} (\textsc{AMG\-4\-PSBLAS}) provides parallel Algebraic +MultiGrid (AMG) preconditioners (see, e.g., +\cite{Briggs2000,Stuben_01}), to be used in the iterative solution of linear systems, \begin{equation} Ax=b, @@ -18,12 +20,14 @@ where $A$ is a square, real or complex, sparse symmetric positive definite (s.p. The preconditioners implemented in AMG4PSBLAS are obtained by combining 3 different types of AMG cycles with smoothers and coarsest-level -solvers. Available multigrid cycles include the V-, W-, and a version of a Krylov-type cycle +solvers. We provide a number of multigrid cycles, including the V-, +W-, and a version of a Krylov-type cycle (K-cycle)~\cite{Briggs2000,Notay2008}; they can be combined with Jacobi, hybrid %\footnote{see Note 2 in Table~\ref{tab:p_coarse}, p.~28.} forward/backward Gauss-Seidel, block-Jacobi and additive Schwarz -smoothers with various versions of local incomplete factorizations and approximate inverses +smoothers with various versions of local incomplete factorizations and +approximate inverses on the blocks. The Jacobi, block-Jacobi and Gauss-Seidel smoothers are also available in the $\ell_1$ version~\cite{DDF2020}. @@ -41,7 +45,8 @@ two different coarsening strategies, based on aggregation, are available: and described in detail in~\cite{DDF2020}; \end{itemize} Either exact or approximate solvers can be used on the coarsest-level -system. We provide interfaces to various parallel and sequential sparse LU factorizations from external +system. We provide interfaces to various parallel and sequential +sparse LU factorizations from external packages, sequential native incomplete LU and approximate inverse factorizations, parallel weighted Jacobi, hybrid Gauss-Seidel, block-Jacobi solvers and calls to preconditioned Krylov methods; all @@ -74,36 +79,41 @@ important revisions and extentions of the PSBLAS infrastructure. The inter-process comunication required by AMG4PSBLAS is encapsulated in the PSBLAS routines; therefore, AMG4PSBLAS can be run on any parallel machine where PSBLAS -implementations are available. In the most recent version of PSBLAS -(release 3.7), a plug-in for GPU is included; it includes CUDA +implementations are available. The most recent version of PSBLAS +(release 3.9) includes a plug-in for GPU; it contains CUDA versions of main vector operations and of sparse matrix-vector multiplication, so that Krylov methods coupled with AMG4PSBLAS -preconditioners relying on Jacobi and block-Jacobi smoothers with -sparse approximate inverses on the blocks can be efficiently executed +preconditioners relying on Jacobi and block-Jacobi smoothers with +sparse approximate inverses on the blocks can be efficiently executed on cluster of GPUs. -AMG4PSBLAS has a layered and modular software architecture where three main layers can be -identified. The lower layer consists of the PSBLAS kernels, the middle one implements -the construction and application phases of the preconditioners, and the upper one -provides a uniform interface to all the preconditioners. -This architecture allows for different levels of use of the package: -few black-box routines at the upper layer allow all users to easily -build and apply any preconditioner available in AMG4PSBLAS; -facilities are also available allowing expert users to extend the set of smoothers -and solvers for building new versions of the preconditioners (see -Section~\ref{sec:adding}). +AMG4PSBLAS has a layered and modular software architecture where three +main layers can be identified. The lower layer consists of the PSBLAS +kernels, the middle one implements the construction and application +phases of the preconditioners, and the upper one provides a uniform +interface to all the preconditioners. This architecture allows for +different levels of use of the package: few black-box routines at the +upper layer allow all users to easily build and apply any +preconditioner available in AMG4PSBLAS; facilities are also available +allowing expert users to extend the set of smoothers and solvers for +building new versions of the preconditioners (see +Section~\ref{sec:adding}). -This guide is organized as follows. General information on the distribution of the source -code is reported in Section~\ref{sec:distribution}, while details on the configuration -and installation of the package are given in Section~\ref{sec:building}. The basics for building and applying the -preconditioners with the Krylov solvers implemented in PSBLAS are reported -in~Section~\ref{sec:started}, where the Fortran codes of a few sample programs -are also shown. A reference guide for the user interface routines is provided -in Section~\ref{sec:userinterface}. Information on the extension of the package -through the addition of new smoothers and solvers is reported in Section~\ref{sec:adding}. -The error handling mechanism used by the package -is briefly described in Section~\ref{sec:errors}. The copyright terms concerning the -distribution and modification of AMG4PSBLAS are reported in Appendix~\ref{sec:license}. +This guide is organized as follows. General information on the +distribution of the source code is reported in +Section~\ref{sec:distribution}, while details on the configuration and +installation of the package are given in +Section~\ref{sec:building}. The basics for building and applying the +preconditioners with the Krylov solvers implemented in PSBLAS are +reported in~Section~\ref{sec:started}, where the Fortran codes of a +few sample programs are also shown. A reference guide for the user +interface routines is provided in +Section~\ref{sec:userinterface}. Information on the extension of the +package through the addition of new smoothers and solvers is reported +in Section~\ref{sec:adding}. The error handling mechanism used by the +package is briefly described in Section~\ref{sec:errors}. The +copyright terms concerning the distribution and modification of +AMG4PSBLAS are reported in Appendix~\ref{sec:license}. %%% Local Variables: %%% mode: latex diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index 88bffece..9ee2d4cc 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -154,7 +154,7 @@ Preconditioners Package based on PSBLAS} \flushright \large Software version: 1.2\\ %\todaym -\large December 31st, 2025 +\large December 23rd, 2025 \end{minipage}} %\addtolength{\textwidth}{\centeroffset} \vspace{\stretch{2}} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 37dcd98c..fed11d47 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -114,7 +114,7 @@ %\today Software version: 1.2\\ %\today - December 31st, 2025 + December 23rd, 2025 \clearpage \ \\ \thispagestyle{empty} diff --git a/docs/src/userinterface.tex b/docs/src/userinterface.tex index 3fbcb832..f313980c 100644 --- a/docs/src/userinterface.tex +++ b/docs/src/userinterface.tex @@ -160,7 +160,7 @@ the smoothers. However, for simplicity, shortcuts are provided to set all versions of point-Jacobi, hybrid (forward) Gauss-Seidel, and hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined just by setting \fortinline|'SMOOTHER_TYPE'| to certain specific -values (see Tables~\ref{tab:p_smoother}), without the need to set +values (see Table~\ref{tab:p_smoother}), without the need to set \fortinline|'SUB_SOLVE'| as well. The smoother and solver objects are arranged in a @@ -182,47 +182,50 @@ the polynomial used. Consequently, the \fortinline|'SMOOTHER_SWEEPS'| option is the \fortinline|'POLY_DEGREE'| option. This smoother is paired with a base smoother object, whose iterations are accelerated using the specified polynomial smoothing technique. By default, the $\ell_1$-Jacobi smoother serves as the base smoother, offering theoretical -guarantees on the resulting convergence factor~\cite{DDFMT2024,LOTTES}. Alternative combinations -are experimental and lack established guarantees.\\ +guarantees on the resulting convergence +factor~\cite{DDFMT2024,LOTTES}. Alternative combinations are +experimental.\\ +% and lack established guarantees.\\ \textbf{Remark 4.} Many of the coarsest-level solvers apply to a -specific coarsest-matrix layout; -therefore, setting the solver after the layout may change the layout -to either distributed or replicated. -Similarly, setting the layout after the solver may change the solver. - -More precisely, UMFPACK and SuperLU require the coarsest-level -matrix to be replicated, while SuperLU\_Dist and KRM require it to be distributed. -In these cases, setting the coarsest-level solver implies that -the layout is redefined according to the solver, ovverriding any +specific coarsest-matrix layout; therefore, setting the solver after +the layout may change the layout to either distributed or replicated, +and similarly, setting the layout after the solver may change the +solver. More specifically, UMFPACK and SuperLU require the coarsest-level +matrix to be replicated, while SuperLU\_Dist and KRM require it to be +distributed; therefore, setting the coarsest-level solver implies +that the layout is redefined according to the solver, ovverriding any previous settings. MUMPS, point-Jacobi, hybrid Gauss-Seidel and block-Jacobi can be applied to replicated and distributed matrices, thus their choice does not modify any previously specified layout. It is worth noting that, when the matrix is replicated, -the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers and their $\ell_1-$ versions -reduce to the corresponding local solver objects (see Remark~2). -For the point-Jacobi and Gauss-Seidel solvers, these objects -correspond to a \emph{single} point-Jacobi sweep and a \emph{single} -Gauss-Seidel sweep, respectively, which are very poor solvers. - -On the other hand, the distributed layout can be used with any solver -but UMFPACK and SuperLU; therefore, if any of these two solvers has already -been selected, the coarsest-level solver is changed to block-Jacobi, -with the previously chosen solver applied to the local blocks. -Likewise, the replicated layout can be used with any solver but SuperLu\_Dist and KRM; -therefore, if SuperLu\_Dist or KRM have been previously set, the coarsest-level -solver is changed to the default sequential solver. - -In a parallel setting with many cores, we suggest to the users to change the default -coarsest solver for using the KRM choice, i.e. a parallel distributed iterative solution of the -coarsest system based on Krylov methods. - -\textbf{Remark 4.} The argument \fortinline|idx| can be used to allow finer -control for those solvers; for instance, by specifying the keyword -\fortinline|'MUMPS_IPAR_ENTRY'| and an appropriate value for \fortinline|idx|, it is -possible to set any entry in the MUMPS integer control array. -See also Sec.~\ref{sec:adding}. +the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers and +their $\ell_1-$ versions reduce to the corresponding local solver +objects (see Remark~2). For the point-Jacobi and Gauss-Seidel solvers, +these objects correspond to a \emph{single} point-Jacobi sweep and a +\emph{single} Gauss-Seidel sweep, respectively, which are very poor +solvers. + +On the other hand, the distributed layout can be used with any solver +except and SuperLU; therefore, if any of these two solvers has +already been selected, the coarsest-level solver is changed to +block-Jacobi, with the previously chosen solver applied to the local +blocks. Likewise, the replicated layout can be used with any solver +but SuperLu\_Dist and KRM; therefore, if SuperLu\_Dist or KRM have +been previously set, the coarsest-level solver is changed to the +default sequential solver. + +In a parallel setting with many cores, we suggest to the users to +change the default coarsest solver for using the KRM choice, i.e. a +parallel distributed iterative solution of the coarsest system based +on Krylov methods. + +\textbf{Remark 4.} The argument \fortinline|idx| can be used to allow +finer control for those solvers; for instance, by specifying the +keyword \fortinline|'MUMPS_IPAR_ENTRY'| and an appropriate value for +\fortinline|idx|, it is possible to set any entry in the MUMPS integer +control array. See also Sec.~\ref{sec:adding}. %The \verb|what,val| pairs described here are those of the predefined %moother/solver objects; newly developed solvers may define new pairs %according to their needs. From 786abaff97f3e8c52162f43c7f8549bc834788b2 Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 23 Dec 2025 11:22:04 +0100 Subject: [PATCH 3/5] Bump minimum PSBLAS requirement to 3.9.0 --- configure | 12 ++++++------ configure.ac | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/configure b/configure index 6e0b95d5..85b1c53e 100755 --- a/configure +++ b/configure @@ -4250,7 +4250,7 @@ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then - for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifx ifort ifc nagfor gfortran + for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 flang ifx ifort ifc nagfor gfortran do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -4300,7 +4300,7 @@ fi fi if test -z "$FC"; then ac_ct_FC=$FC - for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifx ifort ifc nagfor gfortran + for ac_prog in ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 flang ifx ifort ifc nagfor gfortran do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -4738,7 +4738,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then - for ac_prog in cc xlc pgcc icx icc gcc + for ac_prog in cc xlc pgcc clang icx icc gcc do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -4788,7 +4788,7 @@ fi fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cc xlc pgcc icx icc gcc + for ac_prog in cc xlc pgcc clang icx icc gcc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -5442,7 +5442,7 @@ if test -z "$CXX"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then - for ac_prog in CC xlc++ icpx icpc g++ + for ac_prog in CC xlc++ clang++ icpx icpc g++ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -5492,7 +5492,7 @@ fi fi if test -z "$CXX"; then ac_ct_CXX=$CXX - for ac_prog in CC xlc++ icpx icpc g++ + for ac_prog in CC xlc++ clang++ icpx icpc g++ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 diff --git a/configure.ac b/configure.ac index 58d42749..b2a32693 100755 --- a/configure.ac +++ b/configure.ac @@ -129,10 +129,10 @@ dnl We set our own FC flags, ignore those from AC_PROG_FC but not those from the dnl environment variable. Same for C dnl save_FCFLAGS="$FCFLAGS"; -AC_PROG_FC([ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 ifx ifort ifc nagfor gfortran]) +AC_PROG_FC([ftn xlf2003_r xlf2003 xlf95_r xlf95 xlf90 xlf pgf95 pgf90 flang ifx ifort ifc nagfor gfortran]) FCFLAGS="$save_FCFLAGS"; save_CFLAGS="$CFLAGS"; -AC_PROG_CC([cc xlc pgcc icx icc gcc ]) +AC_PROG_CC([cc xlc pgcc clang icx icc gcc ]) if test "x$ac_cv_prog_cc_stdc" == "xno" ; then AC_MSG_ERROR([Problem : Need a C99 compiler ! ]) else @@ -140,7 +140,7 @@ else fi CFLAGS="$save_CFLAGS"; save_CXXFLAGS="$CXXFLAGS"; -AC_PROG_CXX([CC xlc++ icpx icpc g++]) +AC_PROG_CXX([CC xlc++ clang++ icpx icpc g++]) CXXFLAGS="$save_CXXFLAGS"; dnl AC_PROG_CXX From 1557bcc45bb5b8f44b96a072239726f5d84d8230 Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 23 Dec 2025 11:37:01 +0100 Subject: [PATCH 4/5] Docs update --- docs/amg4psblas_1.2-guide.pdf | Bin 1878728 -> 1878728 bytes docs/html/userhtmlse3.html | 86 +++++++++++++++++----------------- docs/src/building.tex | 3 +- 3 files changed, 44 insertions(+), 45 deletions(-) diff --git a/docs/amg4psblas_1.2-guide.pdf b/docs/amg4psblas_1.2-guide.pdf index faec7bbe1e5eb071e10df540e393eefe4f85fa97..baf8b921cf34a40186e842b85633b63f9d035109 100644 GIT binary patch delta 160 zcmX?cwdlmvqJ|d67N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw z7O@ub7Ks+g7O58LEi$W1Sd7h#Os20dk&y?pwqGidnWpA!VrXXIY-wy^>gMcdVQlJX e=IjJyxfnS*8yYz|nK{}i*bq{(ef4Y^S$+V>lP+Wc delta 160 zcmX?cwdlmvqJ|d67N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw z7O@ub7Ks+g7O58LEi$W1SPU(Vji;|Kk&y?pwqGidnWpCK=4@c(;$q-rZeZ$U;_T#X fVd!Y=Y-nNVVqj`y?CNG}r(i=!$@bN=Wn}pQ#EC8z diff --git a/docs/html/userhtmlse3.html b/docs/html/userhtmlse3.html index 3b2067b3..ef524716 100644 --- a/docs/html/userhtmlse3.html +++ b/docs/html/userhtmlse3.html @@ -61,7 +61,7 @@ class="cmr-12">supported by the GNU Fortran compiler, for which we recommend to class="cmr-12">version 12. The software defines data types and interfaces for real and complex data, in both single and double precision. -

Building AMG4PSBLAS requires some base libraries (see Section “developer” part; in order to build AMG4PSBLAS you ne class="cmr-12">the base and optional software used by AMG4PSBLAS is given in the next sections. -

+

3.1 Prerequisites

-

The following base libraries are needed:

-

+

BLAS

-

[18for including -fPIC compilation option in the make.inc file of th library.

-

+

MPI

-

[25A version of MPI is available on most high-performance computing< systems.

-

+

PSBLAS

-

[21; version class="cmr-12">3.9.0 (or later) is required. Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.

-

Please note that the four previous libraries must have Fortran interfaces compatible with AMG4PSBLAS; usually this means that they should all be built with the same compiler being used for AMG4PSBLAS. -

If you want to use the PSBLAS support for NVIDIA GPUs, you will also need a working version of the CUDA Toolkit that is compatible with the @@ -214,7 +214,7 @@ class="cmr-12">options:

 ./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
 
-

Previous versions required you to have the auxiliary libraries SPGPU and PSBLAS-EXT compiled, this is no longer necessary because they have been integrated @@ -226,24 +226,24 @@ class="cmr-12"> 4.2. -

+

3.2 Optional third party libraries

-

We provide interfaces to the following third-party software libraries; note that these are optional, but if you enable them some defaults for multilevel preconditioners may change to reflect their presence. -

+

-

+

UMFPACK

-

[16provide the right path to the BLAS and LAPACK libraries class="cmtt-12">SuiteSparse_config/SuiteSparse_config.mk file.

-

+

MUMPS

-

[2solution for single and double precision, real and complex data. versions 4.10.0 and 5.0.1.

-

+

SuperLU

-

[17data. We tested versions 4.3 and 5.0. If you installed BLAS from remember to define the BLASLIB variable in the make.inc file.

-

+

SuperLU_Dist

-

[28parallel graph partitioning and fill-reducing matrix ordering, av href="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview" class="url" >glaros.dtc.umn.edu/gkhome/metis/parmetis/overview.

-

+

3.3 Configuration options

-

In order to build AMG4PSBLAS, the first step is to use the configure script in the main directory to generate the necessary makefile. -

As a minimal example consider the following: @@ -360,7 +360,7 @@ class="cmr-12">As a minimal example consider the following:

 ./configure --with-psblas=PSB-INSTALL-DIR
 
-

which assumes that the various MPI compilers and support libraries are available in the standard directories on the system, and specifies only the PSBLAS install directory @@ -374,7 +374,7 @@ class="cmtt-12">./configure --help, which produces:

produces:  
configure/issues>.
    
-

For instance, if a user has built and installed PSBLAS 3.9 under the /opt directory and is @@ -3925,7 +3925,7 @@ class="cmr-12">might be configured with: ./configure --with-psblas=/opt/psblas-3.9/ \ --with-umfpackincdir=/usr/include/suitesparse/

-

Once the configure script has completed execution, it will have generated the file Make.inc which will then be used by all Makefiles in the directory tree; t class="cmr-12">copied in the install directory under the name Make.inc.AMG4PSBLAS. -

To use the MUMPS solver package, the user has to add the appropriate options to the configure script; by default we are looking for the libraries --with-extra-libs configure option. -

To build the library the user will now enter @@ -3962,7 +3962,7 @@ class="cmr-12">To build the library the user will now enter

 make
 
-

followed (optionally) by @@ -3970,12 +3970,12 @@ class="cmr-12">followed (optionally) by

 make install
 
-

+

3.4 Bug reporting

-

If you find any bugs in our codes, please report them through our issues page on
https://github.com/psctoolkit/psctoolkit/issues
-

To enable us to track the bug, please provide a log from the failing application, the test conditions, and ideally a self-contained test program reproducing the issue. -

+

3.5 Example and test programs

-

The package contains a samples directory, divided in two subdirs subdirectories. Their purpose is as follows:

-

+

simple

-

contains a set of simple example programs with a predefined choice of preconditioners, selectable via integer values. These are intended to get acquainted with the multilevel preconditioners available in AMG4PSBLAS.

-

+

advanced

-

contains a set of more sophisticated examples that will allow the user, via the input files in the runs subdirectories, to experiment with the full range of preconditioners implemented in the package.

-

The fileread directories contain sample programs that read sparse matrices from files, diff --git a/docs/src/building.tex b/docs/src/building.tex index f3a15583..e203f1a2 100644 --- a/docs/src/building.tex +++ b/docs/src/building.tex @@ -12,8 +12,7 @@ interfaces to external libraries in C; the Fortran compiler must support the Fortran~2003 standard plus the extension \verb|MOLD=| feature, which enhances the usability of \verb|ALLOCATE|. Most Fortran compilers provide this feature; in particular, this is -supported by the GNU Fortran compiler, for which we -recommend to use at least version 12. +supported by the GNU Fortran compiler, for which we recommend to use at least version 12. The software defines data types and interfaces for real and complex data, in both single and double precision. From e627667f3c769693fd90f78a40f186f7aa0dba4b Mon Sep 17 00:00:00 2001 From: sfilippone Date: Tue, 23 Dec 2025 11:50:39 +0100 Subject: [PATCH 5/5] README updates --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index bd51bc67..ca60c68a 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,21 @@ available for AMG4PSBLAS either and the operation will be purely on CPU/MPI. See to production, storage and management of clean, decarbonized energy. Among them you have the possibility of running PSBLAS+AMG4PSBLAS on some test problems to become familiar with using the software. +## MPI and Compilers + The library has been successfully compiled and tested with the same compilers + and MPI implementations as PSBLAS 3.9, which include: + - MPICH 4.2.3, 4.3.0, 4.3.2 + - OpenMPI 4.1.8. 5.0.7, 5.0.8, 5.0.9 + + combined with + + - GNU compilers 10.5.0, 11.5.0, 12.5.0, 13.3.0, 14.2.0 14.3.0, 15.2.0 + - LLVM 20.1.0 and 21.1.0 (except OpenMPI 4.1.8 which does not build with LLVM) + + Moreover, it has been tested with the Intel OneAPI toolchain versions 2025.2 and 2025.3 + + As of this release, the NVIDIA compiler 25.7 fails to handle our code. + Cray, IBM and NAg compilers have been used for testing in the past, but not on this version. ## TODO and bugs