You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
580 lines
19 KiB
580 lines
19 KiB
diff -Nur SuperLU_4.1.orig/ax_blas.m4 SuperLU_4.1/ax_blas.m4
|
|
--- SuperLU_4.1.orig/ax_blas.m4 1970-01-01 01:00:00.000000000 +0100
|
|
+++ SuperLU_4.1/ax_blas.m4 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -0,0 +1,201 @@
|
|
+# ===========================================================================
|
|
+# http://www.gnu.org/software/autoconf-archive/ax_blas.html
|
|
+# ===========================================================================
|
|
+#
|
|
+# SYNOPSIS
|
|
+#
|
|
+# AX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
+#
|
|
+# DESCRIPTION
|
|
+#
|
|
+# This macro looks for a library that implements the BLAS linear-algebra
|
|
+# interface (see http://www.netlib.org/blas/). On success, it sets the
|
|
+# BLAS_LIBS output variable to hold the requisite library linkages.
|
|
+#
|
|
+# To link with BLAS, you should link with:
|
|
+#
|
|
+# $BLAS_LIBS $LIBS $FLIBS
|
|
+#
|
|
+# in that order. FLIBS is the output variable of the
|
|
+# AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is
|
|
+# sometimes necessary in order to link with F77 libraries. Users will also
|
|
+# need to use AC_F77_DUMMY_MAIN (see the autoconf manual), for the same
|
|
+# reason.
|
|
+#
|
|
+# Many libraries are searched for, from ATLAS to CXML to ESSL. The user
|
|
+# may also use --with-blas=<lib> in order to use some specific BLAS
|
|
+# library <lib>. In order to link successfully, however, be aware that you
|
|
+# will probably need to use the same Fortran compiler (which can be set
|
|
+# via the F77 env. var.) as was used to compile the BLAS library.
|
|
+#
|
|
+# ACTION-IF-FOUND is a list of shell commands to run if a BLAS library is
|
|
+# found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is
|
|
+# not found. If ACTION-IF-FOUND is not specified, the default action will
|
|
+# define HAVE_BLAS.
|
|
+#
|
|
+# LICENSE
|
|
+#
|
|
+# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
|
+#
|
|
+# This program is free software: you can redistribute it and/or modify it
|
|
+# under the terms of the GNU General Public License as published by the
|
|
+# Free Software Foundation, either version 3 of the License, or (at your
|
|
+# option) any later version.
|
|
+#
|
|
+# This program is distributed in the hope that it will be useful, but
|
|
+# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
+# Public License for more details.
|
|
+#
|
|
+# You should have received a copy of the GNU General Public License along
|
|
+# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
+#
|
|
+# As a special exception, the respective Autoconf Macro's copyright owner
|
|
+# gives unlimited permission to copy, distribute and modify the configure
|
|
+# scripts that are the output of Autoconf when processing the Macro. You
|
|
+# need not follow the terms of the GNU General Public License when using
|
|
+# or distributing such scripts, even though portions of the text of the
|
|
+# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
+# all other use of the material that constitutes the Autoconf Macro.
|
|
+#
|
|
+# This special exception to the GPL applies to versions of the Autoconf
|
|
+# Macro released by the Autoconf Archive. When you make and distribute a
|
|
+# modified version of the Autoconf Macro, you may extend this special
|
|
+# exception to the GPL to apply to your modified version as well.
|
|
+
|
|
+#serial 11
|
|
+
|
|
+AU_ALIAS([ACX_BLAS], [AX_BLAS])
|
|
+AC_DEFUN([AX_BLAS], [
|
|
+AC_PREREQ(2.50)
|
|
+AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])
|
|
+ax_blas_ok=no
|
|
+
|
|
+AC_ARG_WITH(blas,
|
|
+ [AS_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])
|
|
+case $with_blas in
|
|
+ yes | "") ;;
|
|
+ no) ax_blas_ok=disable ;;
|
|
+ -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;;
|
|
+ *) BLAS_LIBS="-l$with_blas" ;;
|
|
+esac
|
|
+
|
|
+# Get fortran linker names of BLAS functions to check for.
|
|
+AC_F77_FUNC(sgemm)
|
|
+AC_F77_FUNC(dgemm)
|
|
+
|
|
+ax_blas_save_LIBS="$LIBS"
|
|
+LIBS="$LIBS $FLIBS"
|
|
+
|
|
+# First, check BLAS_LIBS environment variable
|
|
+if test $ax_blas_ok = no; then
|
|
+if test "x$BLAS_LIBS" != x; then
|
|
+ save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS"
|
|
+ AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS])
|
|
+ AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes], [BLAS_LIBS=""])
|
|
+ AC_MSG_RESULT($ax_blas_ok)
|
|
+ LIBS="$save_LIBS"
|
|
+fi
|
|
+fi
|
|
+
|
|
+# BLAS linked to by default? (happens on some supercomputers)
|
|
+if test $ax_blas_ok = no; then
|
|
+ save_LIBS="$LIBS"; LIBS="$LIBS"
|
|
+ AC_MSG_CHECKING([if $sgemm is being linked in already])
|
|
+ AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes])
|
|
+ AC_MSG_RESULT($ax_blas_ok)
|
|
+ LIBS="$save_LIBS"
|
|
+fi
|
|
+
|
|
+# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(atlas, ATL_xerbla,
|
|
+ [AC_CHECK_LIB(f77blas, $sgemm,
|
|
+ [AC_CHECK_LIB(cblas, cblas_dgemm,
|
|
+ [ax_blas_ok=yes
|
|
+ BLAS_LIBS="-lcblas -lf77blas -latlas"],
|
|
+ [], [-lf77blas -latlas])],
|
|
+ [], [-latlas])])
|
|
+fi
|
|
+
|
|
+# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(blas, $sgemm,
|
|
+ [AC_CHECK_LIB(dgemm, $dgemm,
|
|
+ [AC_CHECK_LIB(sgemm, $sgemm,
|
|
+ [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"],
|
|
+ [], [-lblas])],
|
|
+ [], [-lblas])])
|
|
+fi
|
|
+
|
|
+# BLAS in Intel MKL library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl"])
|
|
+fi
|
|
+
|
|
+# BLAS in Apple vecLib library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS"
|
|
+ AC_MSG_CHECKING([for $sgemm in -framework vecLib])
|
|
+ AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"])
|
|
+ AC_MSG_RESULT($ax_blas_ok)
|
|
+ LIBS="$save_LIBS"
|
|
+fi
|
|
+
|
|
+# BLAS in Alpha CXML library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"])
|
|
+fi
|
|
+
|
|
+# BLAS in Alpha DXML library? (now called CXML, see above)
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"])
|
|
+fi
|
|
+
|
|
+# BLAS in Sun Performance library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ if test "x$GCC" != xyes; then # only works with Sun CC
|
|
+ AC_CHECK_LIB(sunmath, acosp,
|
|
+ [AC_CHECK_LIB(sunperf, $sgemm,
|
|
+ [BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
|
|
+ ax_blas_ok=yes],[],[-lsunmath])])
|
|
+ fi
|
|
+fi
|
|
+
|
|
+# BLAS in SCSL library? (SGI/Cray Scientific Library)
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"])
|
|
+fi
|
|
+
|
|
+# BLAS in SGIMATH library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(complib.sgimath, $sgemm,
|
|
+ [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"])
|
|
+fi
|
|
+
|
|
+# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(blas, $sgemm,
|
|
+ [AC_CHECK_LIB(essl, $sgemm,
|
|
+ [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"],
|
|
+ [], [-lblas $FLIBS])])
|
|
+fi
|
|
+
|
|
+# Generic BLAS library?
|
|
+if test $ax_blas_ok = no; then
|
|
+ AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"])
|
|
+fi
|
|
+
|
|
+AC_SUBST(BLAS_LIBS)
|
|
+
|
|
+LIBS="$ax_blas_save_LIBS"
|
|
+
|
|
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
|
+if test x"$ax_blas_ok" = xyes; then
|
|
+ ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])
|
|
+ :
|
|
+else
|
|
+ ax_blas_ok=no
|
|
+ $2
|
|
+fi
|
|
+])dnl AX_BLAS
|
|
diff -Nur SuperLU_4.1.orig/configure.ac SuperLU_4.1/configure.ac
|
|
--- SuperLU_4.1.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100
|
|
+++ SuperLU_4.1/configure.ac 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -0,0 +1,16 @@
|
|
+# -*- Autoconf -*-
|
|
+AC_PREREQ(2.59)
|
|
+AC_INIT(superlu, 4.0, xsli@lbl.gov)
|
|
+AM_INIT_AUTOMAKE([foreign])
|
|
+AC_CONFIG_HEADER([config.h])
|
|
+AC_PROG_INSTALL
|
|
+AC_PROG_LIBTOOL
|
|
+AC_PROG_F77
|
|
+sinclude(ax_blas.m4)
|
|
+AX_BLAS
|
|
+if test x"$BLAS_LIBS" = x; then
|
|
+ AC_MSG_ERROR([Cannot find blas libraries])
|
|
+fi
|
|
+AC_CHECK_LIB([m], [floor])
|
|
+AC_CONFIG_FILES([Makefile SRC/Makefile superlu.pc])
|
|
+AC_OUTPUT
|
|
diff -Nur SuperLU_4.1.orig/EXAMPLE/Makefile SuperLU_4.1/EXAMPLE/Makefile
|
|
--- SuperLU_4.1.orig/EXAMPLE/Makefile 2011-03-21 23:42:28.000000000 +0000
|
|
+++ SuperLU_4.1/EXAMPLE/Makefile 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -1,4 +1,3 @@
|
|
-include ../make.inc
|
|
|
|
#######################################################################
|
|
# This makefile creates the example programs for the linear equation
|
|
@@ -32,7 +31,9 @@
|
|
#
|
|
#######################################################################
|
|
|
|
-HEADER = ../SRC
|
|
+HEADER = $(shell pkg-config --cflags superlu)
|
|
+LIBS = $(shell pkg-config --libs superlu)
|
|
+CDEFS = -DAdd_
|
|
|
|
SLINEXM = slinsol.o
|
|
SLINEXM1 = slinsol1.o
|
|
@@ -63,7 +64,6 @@
|
|
ZLINXEXM2 = zlinsolx2.o
|
|
ZITSOL = zitersol.o zfgmr.o
|
|
|
|
-
|
|
all: single double complex complex16
|
|
|
|
single: slinsol slinsol1 slinsolx slinsolx1 slinsolx2 sitersol
|
|
@@ -71,86 +71,86 @@
|
|
complex: clinsol clinsol1 clinsolx clinsolx1 clinsolx2 citersol
|
|
complex16: zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zitersol
|
|
|
|
-slinsol: $(SLINEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SLINEXM) $(LIBS) -lm -o $@
|
|
+slinsol: $(SLINEXM)
|
|
+ $(LD) $(LDFLAGS) $(SLINEXM) $(LIBS) -o $@
|
|
|
|
-slinsol1: $(SLINEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SLINEXM1) $(LIBS) -lm -o $@
|
|
+slinsol1: $(SLINEXM1)
|
|
+ $(LD) $(LDFLAGS) $(SLINEXM1) $(LIBS) -o $@
|
|
|
|
-slinsolx: $(SLINXEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SLINXEXM) $(LIBS) -lm -o $@
|
|
+slinsolx: $(SLINXEXM)
|
|
+ $(LD) $(LDFLAGS) $(SLINXEXM) $(LIBS) -o $@
|
|
|
|
-slinsolx1: $(SLINXEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SLINXEXM1) $(LIBS) -lm -o $@
|
|
+slinsolx1: $(SLINXEXM1)
|
|
+ $(LD) $(LDFLAGS) $(SLINXEXM1) $(LIBS) -o $@
|
|
|
|
-slinsolx2: $(SLINXEXM2) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SLINXEXM2) $(LIBS) -lm -o $@
|
|
+slinsolx2: $(SLINXEXM2)
|
|
+ $(LD) $(LDFLAGS) $(SLINXEXM2) $(LIBS) -o $@
|
|
|
|
-sitersol: $(SITSOL) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SITSOL) $(LIBS) -lm -o $@
|
|
+sitersol: $(SITSOL)
|
|
+ $(LD) $(LDFLAGS) $(SITSOL) $(LIBS) -o $@
|
|
|
|
-dlinsol: $(DLINEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DLINEXM) $(LIBS) -lm -o $@
|
|
+dlinsol: $(DLINEXM)
|
|
+ $(LD) $(LDFLAGS) $(DLINEXM) $(LIBS) -o $@
|
|
|
|
-dlinsol1: $(DLINEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DLINEXM1) $(LIBS) -lm -o $@
|
|
+dlinsol1: $(DLINEXM1)
|
|
+ $(LD) $(LDFLAGS) $(DLINEXM1) $(LIBS) -o $@
|
|
|
|
-dlinsolx: $(DLINXEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DLINXEXM) $(LIBS) -lm -o $@
|
|
+dlinsolx: $(DLINXEXM)
|
|
+ $(LD) $(LDFLAGS) $(DLINXEXM) $(LIBS) -o $@
|
|
|
|
-dlinsolx1: $(DLINXEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DLINXEXM1) $(LIBS) -lm -o $@
|
|
+dlinsolx1: $(DLINXEXM1)
|
|
+ $(LD) $(LDFLAGS) $(DLINXEXM1) $(LIBS) -o $@
|
|
|
|
-dlinsolx2: $(DLINXEXM2) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DLINXEXM2) $(LIBS) -lm -o $@
|
|
+dlinsolx2: $(DLINXEXM2)
|
|
+ $(LD) $(LDFLAGS) $(DLINXEXM2) $(LIBS) -o $@
|
|
|
|
-superlu: $(SUPERLUEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(SUPERLUEXM) $(LIBS) -lm -o $@
|
|
+superlu: $(SUPERLUEXM)
|
|
+ $(LD) $(LDFLAGS) $(SUPERLUEXM) $(LIBS) -o $@
|
|
|
|
-ditersol: $(DITSOL) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(DITSOL) $(LIBS) -lm -o $@
|
|
+ditersol: $(DITSOL)
|
|
+ $(LD) $(LDFLAGS) $(DITSOL) $(LIBS) -o $@
|
|
|
|
-clinsol: $(CLINEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CLINEXM) $(LIBS) -lm -o $@
|
|
+clinsol: $(CLINEXM)
|
|
+ $(LD) $(LDFLAGS) $(CLINEXM) $(LIBS) -o $@
|
|
|
|
-clinsol1: $(CLINEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CLINEXM1) $(LIBS) -lm -o $@
|
|
+clinsol1: $(CLINEXM1)
|
|
+ $(LD) $(LDFLAGS) $(CLINEXM1) $(LIBS) -o $@
|
|
|
|
-clinsolx: $(CLINXEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CLINXEXM) $(LIBS) -lm -o $@
|
|
+clinsolx: $(CLINXEXM)
|
|
+ $(LD) $(LDFLAGS) $(CLINXEXM) $(LIBS) -o $@
|
|
|
|
-clinsolx1: $(CLINXEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CLINXEXM1) $(LIBS) -lm -o $@
|
|
+clinsolx1: $(CLINXEXM1)
|
|
+ $(LD) $(LDFLAGS) $(CLINXEXM1) $(LIBS) -o $@
|
|
|
|
-clinsolx2: $(CLINXEXM2) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CLINXEXM2) $(LIBS) -lm -o $@
|
|
+clinsolx2: $(CLINXEXM2)
|
|
+ $(LD) $(LDFLAGS) $(CLINXEXM2) $(LIBS) -o $@
|
|
|
|
-citersol: $(CITSOL) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(CITSOL) $(LIBS) -lm -o $@
|
|
+citersol: $(CITSOL)
|
|
+ $(LD) $(LDFLAGS) $(CITSOL) $(LIBS) -o $@
|
|
|
|
-zlinsol: $(ZLINEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZLINEXM) $(LIBS) -lm -o $@
|
|
+zlinsol: $(ZLINEXM)
|
|
+ $(LD) $(LDFLAGS) $(ZLINEXM) $(LIBS) -o $@
|
|
|
|
-zlinsol1: $(ZLINEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZLINEXM1) $(LIBS) -lm -o $@
|
|
+zlinsol1: $(ZLINEXM1)
|
|
+ $(LD) $(LDFLAGS) $(ZLINEXM1) $(LIBS) -o $@
|
|
|
|
-zlinsolx: $(ZLINXEXM) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZLINXEXM) $(LIBS) -lm -o $@
|
|
+zlinsolx: $(ZLINXEXM)
|
|
+ $(LD) $(LDFLAGS) $(ZLINXEXM) $(LIBS) -o $@
|
|
|
|
-zlinsolx1: $(ZLINXEXM1) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZLINXEXM1) $(LIBS) -lm -o $@
|
|
+zlinsolx1: $(ZLINXEXM1)
|
|
+ $(LD) $(LDFLAGS) $(ZLINXEXM1) $(LIBS) -o $@
|
|
|
|
-zlinsolx2: $(ZLINXEXM2) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZLINXEXM2) $(LIBS) -lm -o $@
|
|
+zlinsolx2: $(ZLINXEXM2)
|
|
+ $(LD) $(LDFLAGS) $(ZLINXEXM2) $(LIBS) -o $@
|
|
|
|
-zitersol: $(ZITSOL) $(SUPERLULIB)
|
|
- $(LOADER) $(LOADOPTS) $(ZITSOL) $(LIBS) -lm -o $@
|
|
+zitersol: $(ZITSOL)
|
|
+ $(LD) $(LDFLAGS) $(ZITSOL) $(LIBS) -o $@
|
|
|
|
.c.o:
|
|
- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE)
|
|
+ $(CC) $(CFLAGS) $(CDEFS) $(HEADER) -c $< $(VERBOSE)
|
|
|
|
.f.o:
|
|
- $(FORTRAN) $(FFLAGS) -c $< $(VERBOSE)
|
|
+ $(FC) $(FFLAGS) -c $< $(VERBOSE)
|
|
|
|
clean:
|
|
rm -f *.o *linsol *linsol1 *linsolx *linsolx1 *linsolx2 \
|
|
diff -Nur SuperLU_4.1.orig/FORTRAN/Makefile SuperLU_4.1/FORTRAN/Makefile
|
|
--- SuperLU_4.1.orig/FORTRAN/Makefile 2011-03-21 23:42:29.000000000 +0000
|
|
+++ SuperLU_4.1/FORTRAN/Makefile 2011-03-21 23:45:29.000000000 +0000
|
|
@@ -1,12 +1,12 @@
|
|
-include ../make.inc
|
|
+#include ../make.inc
|
|
|
|
#######################################################################
|
|
# This makefile creates the Fortran example interface to use the
|
|
# C routines in SuperLU.
|
|
#######################################################################
|
|
|
|
-HEADER = ../SRC
|
|
-LIBS = $(SUPERLULIB) $(BLASLIB) -lm
|
|
+HEADER = $(shell pkg-config --cflags superlu)
|
|
+LIBS = $(shell pkg-config --libs superlu)
|
|
|
|
# double real
|
|
F77EXM = f77_main.o hbcode1.o c_fortran_dgssv.o
|
|
@@ -17,19 +17,19 @@
|
|
all: f77exm zf77exm
|
|
|
|
f77exm: $(F77EXM) $(SUPERLULIB)
|
|
- $(FORTRAN) $(LOADOPTS) $(F77EXM) $(LIBS) -o $@
|
|
+ $(FC) $(LDFLAGS) $(F77EXM) $(LIBS) -o $@
|
|
|
|
zf77exm: $(ZF77EXM) $(SUPERLULIB)
|
|
$(FORTRAN) $(LOADOPTS) $(ZF77EXM) $(LIBS) -o $@
|
|
|
|
c_fortran_zgssv.o: c_fortran_zgssv.c
|
|
- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE)
|
|
+ $(CC) $(CFLAGS) $(CDEFS) $(HEADER) -c $< $(VERBOSE)
|
|
|
|
.c.o:
|
|
- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE)
|
|
+ $(CC) $(CFLAGS) $(CDEFS) $(HEADER) -c $< $(VERBOSE)
|
|
|
|
.f.o:
|
|
- $(FORTRAN) $(FFLAGS) -c $< $(VERBOSE)
|
|
+ $(FC) $(FFLAGS) -c $< $(VERBOSE)
|
|
|
|
clean:
|
|
rm -f *.o f77exm zf77exm
|
|
diff -Nur SuperLU_4.1.orig/Makefile.am SuperLU_4.1/Makefile.am
|
|
--- SuperLU_4.1.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
|
+++ SuperLU_4.1/Makefile.am 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -0,0 +1,4 @@
|
|
+SUBDIRS = SRC
|
|
+
|
|
+pkgconfigdir = $(libdir)/pkgconfig
|
|
+pkgconfig_DATA = superlu.pc
|
|
diff -Nur SuperLU_4.1.orig/SRC/Makefile.am SuperLU_4.1/SRC/Makefile.am
|
|
--- SuperLU_4.1.orig/SRC/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
|
+++ SuperLU_4.1/SRC/Makefile.am 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -0,0 +1,116 @@
|
|
+AM_CPPFLAGS = -DAdd_
|
|
+
|
|
+### headers
|
|
+noinst_HEADERS = \
|
|
+ colamd.h \
|
|
+ html_mainpage.h
|
|
+
|
|
+src_includedir = $(includedir)/superlu
|
|
+src_include_HEADERS = \
|
|
+ slu_cdefs.h \
|
|
+ slu_ddefs.h \
|
|
+ slu_sdefs.h \
|
|
+ slu_zdefs.h \
|
|
+ slu_Cnames.h \
|
|
+ slu_dcomplex.h \
|
|
+ slu_scomplex.h \
|
|
+ slu_util.h \
|
|
+ superlu_enum_consts.h \
|
|
+ supermatrix.h
|
|
+
|
|
+### LAPACK
|
|
+LAAUX = lsame.c xerbla.c
|
|
+SLASRC = slacon.c
|
|
+DLASRC = dlacon.c
|
|
+CLASRC = clacon.c scsum1.c icmax1.c
|
|
+ZLASRC = zlacon.c dzsum1.c izmax1.c
|
|
+SCLAUX = slamch.c
|
|
+DZLAUX = dlamch.c
|
|
+
|
|
+### SuperLU
|
|
+ALLAUX = superlu_timer.c util.c memory.c get_perm_c.c mmd.c \
|
|
+ sp_coletree.c sp_preorder.c sp_ienv.c relax_snode.c \
|
|
+ heap_relax_snode.c colamd.c \
|
|
+ ilu_relax_snode.c ilu_heap_relax_snode.c mark_relax.c \
|
|
+ mc64ad.f qselect.f
|
|
+
|
|
+SLUSRC = \
|
|
+ sgssv.c sgssvx.c \
|
|
+ ssp_blas2.c ssp_blas3.c sgscon.c \
|
|
+ slangs.c sgsequ.c slaqgs.c spivotgrowth.c \
|
|
+ sgsrfs.c sgstrf.c sgstrs.c scopy_to_ucol.c \
|
|
+ ssnode_dfs.c ssnode_bmod.c \
|
|
+ spanel_dfs.c spanel_bmod.c sreadhb.c \
|
|
+ scolumn_dfs.c scolumn_bmod.c spivotL.c spruneL.c \
|
|
+ smemory.c sutil.c smyblas2.c \
|
|
+ sgsisx.c sgsitrf.c sldperm.c \
|
|
+ ilu_sdrop_row.c ilu_ssnode_dfs.c \
|
|
+ ilu_scolumn_dfs.c ilu_spanel_dfs.c ilu_scopy_to_ucol.c \
|
|
+ ilu_spivotL.c sdiagonal.c
|
|
+
|
|
+DLUSRC = \
|
|
+ dgssv.c dgssvx.c \
|
|
+ dsp_blas2.c dsp_blas3.c dgscon.c \
|
|
+ dlangs.c dgsequ.c dlaqgs.c dpivotgrowth.c \
|
|
+ dgsrfs.c dgstrf.c dgstrs.c dcopy_to_ucol.c \
|
|
+ dsnode_dfs.c dsnode_bmod.c \
|
|
+ dpanel_dfs.c dpanel_bmod.c dreadhb.c \
|
|
+ dcolumn_dfs.c dcolumn_bmod.c dpivotL.c dpruneL.c \
|
|
+ dmemory.c dutil.c dmyblas2.c \
|
|
+ dgsisx.c dgsitrf.c \
|
|
+ dldperm.c \
|
|
+ ilu_ddrop_row.c ilu_dsnode_dfs.c \
|
|
+ ilu_dcolumn_dfs.c ilu_dpanel_dfs.c ilu_dcopy_to_ucol.c \
|
|
+ ilu_dpivotL.c ddiagonal.c
|
|
+
|
|
+CLUSRC = \
|
|
+ scomplex.c cgssv.c cgssvx.c csp_blas2.c csp_blas3.c cgscon.c \
|
|
+ clangs.c cgsequ.c claqgs.c cpivotgrowth.c \
|
|
+ cgsrfs.c cgstrf.c cgstrs.c ccopy_to_ucol.c \
|
|
+ csnode_dfs.c csnode_bmod.c \
|
|
+ cpanel_dfs.c cpanel_bmod.c creadhb.c \
|
|
+ ccolumn_dfs.c ccolumn_bmod.c cpivotL.c cpruneL.c \
|
|
+ cmemory.c cutil.c cmyblas2.c \
|
|
+ cgsisx.c cgsitrf.c cldperm.c \
|
|
+ ilu_cdrop_row.c ilu_csnode_dfs.c \
|
|
+ ilu_ccolumn_dfs.c ilu_cpanel_dfs.c ilu_ccopy_to_ucol.c \
|
|
+ ilu_cpivotL.c cdiagonal.c
|
|
+
|
|
+ZLUSRC = \
|
|
+ dcomplex.c zgssv.c zgssvx.c zsp_blas2.c zsp_blas3.c zgscon.c \
|
|
+ zlangs.c zgsequ.c zlaqgs.c zpivotgrowth.c \
|
|
+ zgsrfs.c zgstrf.c zgstrs.c zcopy_to_ucol.c \
|
|
+ zsnode_dfs.c zsnode_bmod.c \
|
|
+ zpanel_dfs.c zpanel_bmod.c zreadhb.c \
|
|
+ zcolumn_dfs.c zcolumn_bmod.c zpivotL.c zpruneL.c \
|
|
+ zmemory.c zutil.c zmyblas2.c \
|
|
+ zgsisx.c zgsitrf.c zldperm.c \
|
|
+ ilu_zdrop_row.c ilu_zsnode_dfs.c \
|
|
+ ilu_zcolumn_dfs.c ilu_zpanel_dfs.c ilu_zcopy_to_ucol.c \
|
|
+ ilu_zpivotL.c zdiagonal.c
|
|
+
|
|
+lib_LTLIBRARIES = libsuperlu.la
|
|
+libsuperlu_la_SOURCES = \
|
|
+ $(ALLAUX) $(LAAUX) \
|
|
+ $(SCLAUX) $(DZLAUX) \
|
|
+ $(SLUSRC) $(SLASRC) \
|
|
+ $(DLUSRC) $(DLASRC) \
|
|
+ $(CLUSRC) $(CLASRC) \
|
|
+ $(ZLUSRC) $(ZLASRC)
|
|
+libsuperlu_la_LIBADD = $(BLAS_LIBS)
|
|
+libsuperlu_la_LDFLAGS = -no-undefined -version-info 4:0:0
|
|
+
|
|
+##################################
|
|
+# Do not optimize these routines #
|
|
+##################################
|
|
+LTCOMPILE_NOOPT = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
|
|
+
|
|
+slamch.lo: slamch.c
|
|
+ $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
+dlamch.lo: dlamch.c
|
|
+ $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
+superlu_timer.lo: superlu_timer.c
|
|
+ $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
+##################################
|
|
diff -Nur SuperLU_4.1.orig/superlu.pc.in SuperLU_4.1/superlu.pc.in
|
|
--- SuperLU_4.1.orig/superlu.pc.in 1970-01-01 01:00:00.000000000 +0100
|
|
+++ SuperLU_4.1/superlu.pc.in 2011-03-21 23:42:42.000000000 +0000
|
|
@@ -0,0 +1,13 @@
|
|
+prefix=@prefix@
|
|
+exec_prefix=@exec_prefix@
|
|
+libdir=@libdir@
|
|
+includedir=@includedir@
|
|
+
|
|
+Name: @PACKAGE_NAME@
|
|
+Description: Sparse LU factorization library
|
|
+Version: @PACKAGE_VERSION@
|
|
+URL: http://www.netlib.org/blas/
|
|
+Libs: -L${libdir} -lsuperlu
|
|
+Libs.private: -lm @FLIBS@
|
|
+Requires: blas
|
|
+Cflags: -I${includedir}/superlu
|