Todd R 2016-10-21 00:13:02 +00:00 committed by Git OBS Bridge
parent 84d0eda25e
commit f4d2dd3913
14 changed files with 133 additions and 522 deletions

View File

@ -1,10 +1,8 @@
This version of SuperLU is slightly different form the original SuperLU
available on http://crd.lbl.gov/~xiaoye/SuperLU/. For legal reasons the
routine mc64ad from the Harwell Subroutine Library cannot be redistributed
by openSUSE and have been removed form the sources.
mc64ad.c sgsisx.c sldperm.c dgsisx.c dldperm.c cgsisx.c cldperm.c zgsisx.c zldperm.c
were removed from the tarball.
by openSUSE and have been removed form the sources. Only SRC/mc64ad.c was
removed from the tarball.
However the SuperLU library provided by openSUSE is fully functionnal
except that the mc64ad routine is not used.

View File

@ -1,4 +0,0 @@
<multibuild>
<package>gnu-hpc</package>
<package>serial</package>
</multibuild>

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libsuperlu5

View File

@ -1,29 +0,0 @@
#!/bin/bash
set -e
VERSION=5.3.0
FILES="mc64ad.c sgsisx.c sldperm.c dgsisx.c dldperm.c cgsisx.c cldperm.c zgsisx.c zldperm.c"
URL="https://github.com/xiaoyeli/superlu/archive/v$VERSION/superlu-$VERSION.tar.gz"
TAR="superlu-$VERSION.tar.gz"
WORKDIR="$(mktemp -d superlu.XXXX)"
TODIR="$(pwd)"
cd "$WORKDIR"
wget $URL
tar xfz superlu-$VERSION.tar.gz
for file in $FILES; do
rm superlu-$VERSION/SRC/$file
done
if [ -e "$TODIR/$TAR" ]; then
echo "$TAR already exists."
else
tar cfz "$TODIR/$TAR" superlu-$VERSION
fi
cd "$TODIR"
rm -r "$WORKDIR"

View File

@ -0,0 +1,20 @@
diff -aruN SuperLU_4.3.orig/INSTALL/timertst.c SuperLU_4.3/INSTALL/timertst.c
--- SuperLU_4.3.orig/INSTALL/timertst.c 2011-10-27 21:49:47.000000000 +0200
+++ SuperLU_4.3/INSTALL/timertst.c 2012-12-20 21:55:13.954437737 +0100
@@ -6,6 +6,8 @@
return;
}
+volatile double _dummy;
+
int main()
{
/* Parameters */
@@ -32,6 +34,7 @@
for (j = 0; j < iters; ++j) {
for (i = 0; i < NMAX; ++i) y[i] += alpha * x[i];
alpha = -alpha;
+ _dummy = y[j%NMAX];
}
t2 = SuperLU_timer_();
tnotim = t2 - t1;

22
superlu-4.3-include.patch Normal file
View File

@ -0,0 +1,22 @@
diff -aruN SuperLU_4.3.orig/TESTING/ddrive.c SuperLU_4.3/TESTING/ddrive.c
--- SuperLU_4.3.orig/TESTING/ddrive.c 2011-10-27 21:49:47.000000000 +0200
+++ SuperLU_4.3/TESTING/ddrive.c 2012-12-20 22:14:43.026465899 +0100
@@ -11,6 +11,7 @@
* Purpose: MAIN test program
*/
#include <string.h>
+#include <unistd.h>
#include "slu_ddefs.h"
#define NTESTS 5 /* Number of test types */
diff -aruN SuperLU_4.3.orig/TESTING/sdrive.c SuperLU_4.3/TESTING/sdrive.c
--- SuperLU_4.3.orig/TESTING/sdrive.c 2011-10-27 21:49:47.000000000 +0200
+++ SuperLU_4.3/TESTING/sdrive.c 2012-12-20 22:14:43.030465752 +0100
@@ -11,6 +11,7 @@
* Purpose: MAIN test program
*/
#include <string.h>
+#include <unistd.h>
#include "slu_sdefs.h"
#define NTESTS 5 /* Number of test types */

View File

@ -1,15 +1,14 @@
diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -21,7 +21,6 @@
--- a/SRC/CMakeLists.txt 2016-05-29 13:57:44.683251096 +0200
+++ b/SRC/CMakeLists.txt 2016-05-29 13:57:31.570987497 +0200
@@ -22,7 +22,6 @@
ilu_relax_snode.c
ilu_heap_relax_snode.c
mark_relax.c
- mc64ad.c
qselect.c
input_error.c
dmach.c
@@ -65,9 +64,7 @@
)
@@ -63,9 +62,7 @@
smemory.c
sutil.c
smyblas2.c
@ -19,7 +18,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_sdrop_row.c
ilu_ssnode_dfs.c
ilu_scolumn_dfs.c
@@ -115,9 +112,7 @@
@@ -112,9 +109,7 @@
dmemory.c
dutil.c
dmyblas2.c
@ -29,7 +28,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_ddrop_row.c
ilu_dsnode_dfs.c
ilu_dcolumn_dfs.c
@@ -168,9 +163,7 @@
@@ -163,9 +158,7 @@
cmemory.c
cutil.c
cmyblas2.c
@ -39,7 +38,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_cdrop_row.c
ilu_csnode_dfs.c
ilu_ccolumn_dfs.c
@@ -219,9 +212,7 @@
@@ -213,9 +206,7 @@
zmemory.c
zutil.c
zmyblas2.c

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c347397f791eb8cb18b557dfe8ed83eaed5638a59c7335808b3949673b35c0a3
size 2468947

View File

@ -1,113 +0,0 @@
diff -Nrua a/EXAMPLE/Makefile b/EXAMPLE/Makefile
--- a/EXAMPLE/Makefile
+++ b/EXAMPLE/Makefile
@@ -39,8 +39,6 @@
SLINXEXM1 = slinsolx1.o
SLINXEXM2 = slinsolx2.o
SLINXEXM3 = slinsolx3.o
-SITSOL = sitersol.o sfgmr.o
-SITSOL1 = sitersol1.o sfgmr.o
DLINEXM = dlinsol.o
DLINEXM1 = dlinsol1.o
@@ -49,8 +47,6 @@
DLINXEXM2 = dlinsolx2.o
DLINXEXM3 = dlinsolx3.o
SUPERLUEXM = superlu.o sp_ienv.o
-DITSOL = ditersol.o dfgmr.o
-DITSOL1 = ditersol1.o dfgmr.o
CLINEXM = clinsol.o
CLINEXM1 = clinsol1.o
@@ -58,8 +54,6 @@
CLINXEXM1 = clinsolx1.o
CLINXEXM2 = clinsolx2.o
CLINXEXM3 = clinsolx3.o
-CITSOL = citersol.o cfgmr.o
-CITSOL1 = citersol1.o cfgmr.o
ZLINEXM = zlinsol.o
ZLINEXM1 = zlinsol1.o
@@ -67,20 +61,17 @@
ZLINXEXM1 = zlinsolx1.o
ZLINXEXM2 = zlinsolx2.o
ZLINXEXM3 = zlinsolx3.o
-ZITSOL = zitersol.o zfgmr.o
-ZITSOL1 = zitersol1.o zfgmr.o
all: single double complex complex16
-single: slinsol slinsol1 slinsolx slinsolx1 slinsolx2 slinsolx3 \
- sitersol sitersol1
+single: slinsol slinsol1 slinsolx slinsolx1 slinsolx2 slinsolx3
+
double: dlinsol dlinsol1 dlinsolx dlinsolx1 dlinsolx2 dlinsolx3 \
- superlu ditersol ditersol1
-complex: clinsol clinsol1 clinsolx clinsolx1 clinsolx2 clinsolx3 \
- citersol citersol1
-complex16: zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zlinsolx3 \
- zitersol zitersol1
+ superlu
+complex: clinsol clinsol1 clinsolx clinsolx1 clinsolx2 clinsolx3
+
+complex16: zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zlinsolx3
slinsol: $(SLINEXM) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(SLINEXM) $(LIBS) -lm -o $@
@@ -100,11 +91,6 @@
slinsolx3: $(SLINXEXM3) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(SLINXEXM3) $(LIBS) -lm -o $@
-sitersol: $(SITSOL) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(SITSOL) $(LIBS) -lm -o $@
-
-sitersol1: $(SITSOL1) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(SITSOL1) $(LIBS) -lm -o $@
dlinsol: $(DLINEXM) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(DLINEXM) $(LIBS) -lm -o $@
@@ -127,12 +113,6 @@
superlu: $(SUPERLUEXM) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(SUPERLUEXM) $(LIBS) -lm -o $@
-ditersol: $(DITSOL) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(DITSOL) $(LIBS) -lm -o $@
-
-ditersol1: $(DITSOL1) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(DITSOL1) $(LIBS) -lm -o $@
-
clinsol: $(CLINEXM) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(CLINEXM) $(LIBS) -lm -o $@
@@ -151,12 +131,6 @@
clinsolx3: $(CLINXEXM3) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(CLINXEXM3) $(LIBS) -lm -o $@
-citersol: $(CITSOL) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(CITSOL) $(LIBS) -lm -o $@
-
-citersol1: $(CITSOL1) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(CITSOL1) $(LIBS) -lm -o $@
-
zlinsol: $(ZLINEXM) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(ZLINEXM) $(LIBS) -lm -o $@
@@ -175,11 +149,6 @@
zlinsolx3: $(ZLINXEXM3) $(SUPERLULIB)
$(LOADER) $(LOADOPTS) $(ZLINXEXM3) $(LIBS) -lm -o $@
-zitersol: $(ZITSOL) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(ZITSOL) $(LIBS) -lm -o $@
-
-zitersol1: $(ZITSOL1) $(SUPERLULIB)
- $(LOADER) $(LOADOPTS) $(ZITSOL1) $(LIBS) -lm -o $@
.c.o:
$(CC) $(CFLAGS) $(CDEFS) $(INCLUDEDIR) -c $< $(VERBOSE)
@@ -189,7 +158,7 @@
clean:
rm -f *.o *linsol *linsol1 *linsolx *linsolx1 *linsolx2 *linsolx3 \
- superlu *itersol *itersol1
+ superlu

View File

@ -1,14 +0,0 @@
diff -Nrua a/MAKE_INC/make.linux b/MAKE_INC/make.linux
--- a/MAKE_INC/make.linux
+++ b/MAKE_INC/make.linux
@@ -21,8 +21,8 @@
#
# The name of the libraries to be created/linked to
#
-SuperLUroot = $(HOME)/Dropbox/Codes/SuperLU/SuperLU
-SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_5.1.a
+SuperLUroot = @superlu_home@
+SUPERLULIB = @superlu_lib@
#BLASLIB = $(SuperLUroot)/lib/libblas.a

View File

@ -1,111 +1,3 @@
-------------------------------------------------------------------
Thu Sep 30 19:47:48 UTC 2021 - Antoine Ginies <aginies@suse.com>
- update to version 5.3.0 (JSC#SLE-22138)
-------------------------------------------------------------------
Thu Jan 28 17:45:16 UTC 2021 - Egbert Eich <eich@suse.com>
- Change 'Requires:' to other HPC packages to %requires_eq to depend
on the exact version. This should take care of HPC packages ignoring
proper ABI versioning.
-------------------------------------------------------------------
Mon Nov 16 14:41:49 UTC 2020 - Ana Guerrero Lopez <aguerrero@suse.com>
- Fix package name, re-add lines removed by mistake.
This fix duplicate binary names. (boo#1178840)
-------------------------------------------------------------------
Mon Oct 26 14:11:13 UTC 2020 - Ana Guerrero Lopez <aguerrero@suse.com>
- New version 5.2.2 (boo#1178112)
- bugfixes, documentation and examples update.
- Update URL and Source0 and Source1, use get_tarball.sh to remove
non distributable files.
- Install superlu_ug.pdf provided by the tarball.
- Remove patch, merged upstream
* superlu-4.3-include.patch
* superlu-4.3-dont-opt-away.diff
* superlu-5.2-make.patch
- Refresh patch:
* superlu-examples_Makefile_remove_itersol.patch
* superlu-make.linux.patch
-------------------------------------------------------------------
Fri Sep 11 06:13:46 UTC 2020 - Egbert Eich <eich@suse.com>
- Add build support for gcc10 to HPC build (bsc#1174439).
-------------------------------------------------------------------
Wed Feb 26 12:30:51 UTC 2020 - Egbert Eich <eich@suse.com>
- Add support for gcc8/9 building (jsc#SLE-8604).
-------------------------------------------------------------------
Thu Feb 14 09:16:02 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Fix the package group fix.
-------------------------------------------------------------------
Sun Feb 10 23:11:37 UTC 2019 - Egbert Eich <eich@suse.com>
- Fix dependencies.
- Fix %%post and %%postun scripts for HPC.
- Fix HPC modulefile.
- Fix package groups.
- Generate and add pkgconfig files.
-------------------------------------------------------------------
Fri Feb 8 10:50:43 UTC 2019 - eich@suse.com
- Set default module version correctly when installing
master package, unset when deinstalling the default library
package.
- make example make.inc work with non-HPC builds as well.
-------------------------------------------------------------------
Fri Feb 8 09:40:33 UTC 2019 - Antoine Ginies <aginies@suse.com>
- Add superlu-examples_Makefile_remove_itersol.patch
superlu-make.linux.patch:
get a buildable examples test suite (bsc#1124765)
fixing Makefile
adding missing make.inc
-------------------------------------------------------------------
Tue Jan 22 11:58:01 UTC 2019 - eich@suse.com
- Disable HPC builds for ring testing on Factory submissions.
-------------------------------------------------------------------
Mon Jan 21 15:09:13 UTC 2019 - eich@suse.com
- Fix a word in a comment.
- Remove some colloquialism from a package description.
-------------------------------------------------------------------
Fri Jan 18 14:46:44 UTC 2019 - eich@suse.com
- Reenable ldconfig in %post and %postun for HPC but don't let it
update the cache: this would be pointless for libraries in
non-standard locations.
-------------------------------------------------------------------
Thu Jan 10 09:31:45 UTC 2019 - eich@suse.com
- Moved HPC module from devel to library package.
- Modified summary for devel package.
-------------------------------------------------------------------
Fri Oct 26 19:55:59 UTC 2018 - eich@suse.com
- Add environment module support for HPC.
* create baselib.conf on the fly.
- Add superlu-5.2-make.patch:
add compiler and build flags in make.inc.
- Separate off documentation and examples to separate packages.
-------------------------------------------------------------------
Tue Jun 14 12:56:22 UTC 2016 - badshah400@gmail.com
@ -136,7 +28,7 @@ Tue Jan 15 21:14:51 UTC 2013 - scorot@free.fr
- repackage original source tarball in order to remove the
HSL mc64ad routine that caonnt be redistributed bnc#796236
- add README.SUSE file in the %%doci in order to explain
- add README.SUSE file in the %%doci in order to explain
that change
-------------------------------------------------------------------
@ -167,14 +59,14 @@ Tue Dec 18 22:21:27 UTC 2012 - scorot@free.fr
for both superlu & superlu_dist.
* Replace qsort by "quick select" (qselect) in ILU's secondary
dropping.
* Replace mc64ad.f by mc64ad.c using f2c.
* Replace mc64ad.f by mc64ad.c using f2c.
* Bug fixes in ilu_sdrop_row.c.
* Bug fixes in xgsisx.c, so that when mc64 permutation is used
in ILU, the right-hand side is permuted properly.
* Add parameter #7 in sp_ienv(), setting as the maxsuper for ILU
code (smaller than parameter #3).
* Update Users Guide.
* Update doxygen code documentation.
* Update doxygen code documentation.
* Fix a bug in ILU driver routine dgsisx.c, so that on return,
the initial row permutation is combined with perm_r[] from
partial pivoting.
@ -194,7 +86,7 @@ Tue Dec 18 22:21:27 UTC 2012 - scorot@free.fr
- Add %%ckeck
- Update documentation file %%source1 and put html and examples
files in %%doc
- Spec file reformating
- Spec file reformating
-------------------------------------------------------------------
Sun Jan 29 01:48:27 UTC 2012 - jengelh@medozas.de
@ -205,7 +97,7 @@ Sun Jan 29 01:48:27 UTC 2012 - jengelh@medozas.de
-------------------------------------------------------------------
Thu Jun 22 18:18:46 CEST 2006 - ro@suse.de
- remove selfprovides
- remove selfprovides
-------------------------------------------------------------------
Mon Mar 27 02:23:29 CEST 2006 - garloff@suse.de
@ -234,15 +126,15 @@ Wed Dec 21 13:33:20 CET 2005 - garloff@suse.de
Wed Dec 21 02:17:35 CET 2005 - garloff@suse.de
- Update to SuperLU-3.0: [#133821]
* Added "options" input argument and "stat" output argument
* Added "options" input argument and "stat" output argument
for the driver routines
* More Examples
* Added a "symmetric mode" for (nearly) symmetric matrices
* Better Fortran interface.
* fixed a bug in the complex drivers sgssvx/zgssvx when the
* fixed a bug in the complex drivers sgssvx/zgssvx when the
input matrix is stored in compressed row format.
* prefixed the header files by "slu_".
* Fixed a memory leak in get_perm_c() when bnz=0.
* prefixed the header files by "slu_".
* Fixed a memory leak in get_perm_c() when bnz=0.
* Changed "abs" to "fabs" in izmax1.
* Upgraded COLAMD to the latest version (2.3).15
- Add various declarations and #include statements
@ -252,12 +144,12 @@ Wed Dec 21 02:17:35 CET 2005 - garloff@suse.de
-------------------------------------------------------------------
Fri Nov 25 14:20:00 CET 2005 - yxu@suse.de
- add missing function prototypes
- add missing function prototypes
-------------------------------------------------------------------
Tue Nov 15 13:42:23 CET 2005 - dmueller@suse.de
- avoid an endless loop during building (#133820)
- avoid an endless loop during building (#133820)
-------------------------------------------------------------------
Mon May 9 17:24:12 CEST 2005 - meissner@suse.de
@ -267,7 +159,7 @@ Mon May 9 17:24:12 CEST 2005 - meissner@suse.de
-------------------------------------------------------------------
Mon Dec 20 02:58:44 CET 2004 - garloff@suse.de
- Pass $(RPM_OPT_FLAGS) -Os -fPIC for files that don't need to be
- Pass $(RPM_OPT_FLAGS) -Os -fPIC for files that don't need to be
optimized.
-------------------------------------------------------------------
@ -338,7 +230,7 @@ Fri Apr 19 20:17:23 MEST 2002 - garloff@suse.de
-------------------------------------------------------------------
Wed Apr 10 01:49:54 CEST 2002 - ro@suse.de
- fix owner for README.SuperLU
- fix owner for README.SuperLU
-------------------------------------------------------------------
Mon Aug 7 22:12:27 CEST 2000 - garloff@suse.de
@ -359,3 +251,4 @@ Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de
Wed Sep 1 00:21:25 CEST 1999 - garloff@suse.de
- First creation of package.

View File

@ -1,7 +1,8 @@
#
# spec file for package superlu
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 Christoph Grüninger foss@grueninger.de
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -12,284 +13,118 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
# Base package name
%define pname superlu
%define ver 5.3.0
%define _ver %(echo %{ver} | tr . _)
%if "%flavor" == ""
ExclusiveArch: do_not_build
%endif
%if "%{flavor}" == "serial"
%bcond_with hpc
%endif
%if "%{flavor}" == "gnu-hpc"
%bcond_without hpc
%global compiler_family gnu
%undefine c_f_ver
%endif
%if "%{flavor}" == "gnu7-hpc"
%bcond_without hpc
%global compiler_family gnu
%undefine c_f_ver 7
%endif
%if "%{flavor}" == "gnu8-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 8
%endif
%if "%{flavor}" == "gnu9-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 9
%endif
%if "%{flavor}" == "gnu10-hpc"
%bcond_without hpc
%global compiler_family gnu
%define c_f_ver 10
%endif
%bcond_with ringdisabled
%if %{with hpc} && %{with ringdisabled}
ExclusiveArch: do_not_build
%endif
%define package_name %pname
%if %{without hpc}
%define p_prefix %_prefix
%define p_includedir %_includedir
%define p_libdir %_libdir
%define _sover 5
%define libname lib%{name}%{?_sover}
%else
%{hpc_init -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} %{?ext:-e %{ext}}}
%define package_name %{hpc_package_name %_ver}
%define p_prefix %hpc_prefix
%define p_includedir %hpc_includedir
%define p_libdir %hpc_libdir
%define libname lib%{name}
%endif
Name: %{package_name}
Summary: A general purpose library for the direct solution of linear equations
Name: superlu
Summary: A general purpose library for the direct solution of sparse systems of linear equations
License: BSD-3-Clause
Group: Productivity/Scientific/Math
Version: %{ver}
Group: Development/Libraries/C and C++
Version: 5.2.1
Release: 0
URL: https://portal.nersc.gov/project/sparse/superlu/
Source0: %{pname}-%{version}.tar.gz
# Tarball above is generated with the script below
Source1: get-tarball.sh
%define soname lib%{name}5
#Source: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz
Source: %{name}_%{version}-bsd.tar.gz
Source1: superlu_ug.pdf
Source2: README.SUSE
# PATCH-FIX-OPENSUSE superlu-5.2-remove-mc64ad.patch [bnc#796236]
Source3: baselibs.conf
# PATCH-FIX-UPSTREAM superlu-4.3-include.patch : avoid implicit declaration warnings
Patch1: superlu-4.3-include.patch
# PATCH-FIX-UPSTREAM superlu-4.3-dont-opt-away.diff
Patch2: superlu-4.3-dont-opt-away.diff
# PATCH-FIX-OPENSUSE superlu-5.2-remove-mc64ad.patch [bnc#796236]
# The Harwell Subroutine Library (HSL) routine mc64ad.c have been removed
# from the original sources for legal reasons. This patch disables the inclusion of
# this routine in the library which, however, remains fully functional
# this routine in the library which, however, remains fully functionnal
Patch3: superlu-5.2-remove-mc64ad.patch
Patch4: superlu-examples_Makefile_remove_itersol.patch
Patch5: superlu-make.linux.patch
Url: http://crd.lbl.gov/~xiaoye/SuperLU/
BuildRequires: blas-devel
BuildRequires: cmake >= 2.8.12
BuildRequires: fdupes
BuildRequires: tcsh
%if %{without hpc}
BuildRequires: blas-devel
BuildRequires: gcc-fortran
%else
Requires: %{compiler_family}%{?c_f_ver}-compilers-hpc
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel
BuildRequires: suse-hpc >= 0.3
%endif
BuildRequires: tcsh
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices.
Documentation can be found in the %{name}-doc package or on
http://www.netlib.org.
%package -n %libname
%package -n %soname
Summary: SuperLU matrix solver
Group: System/Libraries
%if %{with hpc}
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc}
Requires: lua-lmod >= 7.6.1
%hpc_requires
%endif
%description -n %libname
%description -n %soname
SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices.
%package devel
Summary: Headers and development library for lib%{name}%{?_sover}
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: %libname = %version
%if %{with hpc}
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel}
%hpc_requires_devel
%endif
Recommends: %name-doc
Requires: %soname = %{version}
# The standalone superlu RPM has been eliminated, and the relevant
# files are now in superlu-devel
# The last standalone superlu RPM was was v3.0
Provides: superlu = %{version}
Obsoletes: superlu <= 3.0
%description devel
SuperLU headers and libraries files needed for development
%package doc
Summary: Documentation for %name
Group: Documentation/Other
%description doc
Documentation (HTML/PDF) for SuperLU.
SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices.
%package examples
Summary: Examples for %name
Group: Documentation/Other
Recommends: %name-devel
%description examples
Example programs for SuperLU.
SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices.
%if %{with hpc}
%{hpc_master_package -l -L}
%{hpc_master_package -L devel}
%{hpc_master_package doc}
%{hpc_master_package -L examples}
%endif
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q -n superlu-%{version}
%setup -q -n SuperLU_%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
cp %SOURCE2 ./
# Create baselibs.conf dynamically (non-HPC build only).
%if %{without hpc}
cat > %{_sourcedir}/baselibs.conf <<EOF
lib%{name}%{?_sover}
EOF
%endif
# superlu_ug.pdf in %%doc
cp %SOURCE1 %SOURCE2 ./
%build
%{?hpc_setup}
%if %{without hpc}
# FIXME: Drop the -Denable_tests=OFF flag when MATGEN linking issues are resolved
%cmake \
%else
module load openblas
%hpc_cmake \
%endif
-DCMAKE_BUILD_TYPE=Release -DUSE_XSDK_DEFAULTS='TRUE' -Denable_tests=OFF
make %{?_smp_mflags}
cd ..
%install
%cmake_install
#fix permissions
chmod 644 MATLAB/*
# remove all build examples
cd EXAMPLE
make clean
rm -rf *itersol* .gitignore
rm -rf *itersol*
cd ..
mv EXAMPLE examples
cp MAKE_INC/make.linux examples/make.inc
sed -i -e 's&@superlu_home@&%p_prefix&' -e 's&@superlu_lib@&%p_libdir&' examples/make.inc
rm -f examples/.gitignore
cp FORTRAN/README README.fortran
%fdupes -s examples
%if %{with hpc}
%{hpc_write_pkgconfig}
%check
ln -s examples/ EXAMPLE
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
make testing
echo -ne "\nTest results\n"
for i in stest dtest ctest ztest; do
cat TESTING/$i.out
done
# TODO: is there any path to add for Matlab files?
%hpc_write_modules_files
#%Module1.0#####################################################################
%post -n %soname -p /sbin/ldconfig
proc ModulesHelp { } {
%postun -n %soname -p /sbin/ldconfig
puts stderr " "
puts stderr "This module loads the SuperLU library built with the %{compiler_family} compiler"
puts stderr "toolchain."
puts stderr " "
puts stderr "Note that this build of SuperLU leverages the OpenBLAS linear algebra libraries."
puts stderr "Consequently, openblas is loaded automatically with this module."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} compiler"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{SUMMARY}"
module-whatis "%{url}"
set version %{version}
depends-on openblas
if {[file isdirectory %{hpc_includedir}]} {
prepend-path INCLUDE %{hpc_includedir}
}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
setenv %{hpc_PNAME %pname}_DIR %{hpc_prefix}
if {[file isdirectory %{hpc_includedir}]} {
setenv %{hpc_PNAME %pname}_INC %{hpc_includedir}
%hpc_modulefile_add_pkgconfig_path
}
setenv %{hpc_PNAME %pname}_LIB %{hpc_libdir}
EOF
%endif
%if %{without hpc}
%post -n %libname -p /sbin/ldconfig
%postun -n %libname -p /sbin/ldconfig
%else
%post -n %libname
/sbin/ldconfig -N %hpc_libdir
%postun -n %libname
/sbin/ldconfig -N %hpc_libdir
%hpc_module_delete_if_default
%endif
%files -n %libname
%files -n %soname
%defattr(-,root,root,-)
%doc README MATLAB README.SUSE
%{?with_hpc:%hpc_dirs}
%{?with_hpc:%hpc_modules_files}
%{p_libdir}/*.so.*
%{_libdir}/*.so.*
%files devel
%doc README.fortran
%{?with_hpc:%{hpc_pkgconfig_file}}
%{p_includedir}/%{!?with_hpc:*}
%{p_libdir}/*.so
%dir %{p_libdir}/cmake/
%dir %{p_libdir}/cmake/superlu/
%{p_libdir}/cmake/superlu/*.cmake
%{p_libdir}/pkgconfig/superlu.pc
%files doc
%doc DOC/html DOC/ug.pdf
%files examples
%doc examples
%defattr(-,root,root,-)
%doc DOC/html examples README.fortran superlu_ug.pdf
%{_includedir}/*.h
%{_libdir}/*.so
%changelog

3
superlu_5.2.1-bsd.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a69513a061432baaac93bfd60a258ad492b894a2f4025276e742d88251b8a82f
size 2540521

3
superlu_ug.pdf Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f66438fe62cbc455855813b914095a11fe7b96a700926b59bce8a1d8a4dbcdba
size 687318