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 This version of SuperLU is slightly different form the original SuperLU
available on http://crd.lbl.gov/~xiaoye/SuperLU/. For legal reasons the available on http://crd.lbl.gov/~xiaoye/SuperLU/. For legal reasons the
routine mc64ad from the Harwell Subroutine Library cannot be redistributed routine mc64ad from the Harwell Subroutine Library cannot be redistributed
by openSUSE and have been removed form the sources. by openSUSE and have been removed form the sources. Only SRC/mc64ad.c was
removed from the tarball.
mc64ad.c sgsisx.c sldperm.c dgsisx.c dldperm.c cgsisx.c cldperm.c zgsisx.c zldperm.c
were removed from the tarball.
However the SuperLU library provided by openSUSE is fully functionnal However the SuperLU library provided by openSUSE is fully functionnal
except that the mc64ad routine is not used. 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 2016-05-29 13:57:44.683251096 +0200
--- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt 2016-05-29 13:57:31.570987497 +0200
+++ b/SRC/CMakeLists.txt @@ -22,7 +22,6 @@
@@ -21,7 +21,6 @@
ilu_relax_snode.c ilu_relax_snode.c
ilu_heap_relax_snode.c ilu_heap_relax_snode.c
mark_relax.c mark_relax.c
- mc64ad.c - mc64ad.c
qselect.c qselect.c
input_error.c input_error.c
dmach.c )
@@ -65,9 +64,7 @@ @@ -63,9 +62,7 @@
smemory.c smemory.c
sutil.c sutil.c
smyblas2.c smyblas2.c
@ -19,7 +18,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_sdrop_row.c ilu_sdrop_row.c
ilu_ssnode_dfs.c ilu_ssnode_dfs.c
ilu_scolumn_dfs.c ilu_scolumn_dfs.c
@@ -115,9 +112,7 @@ @@ -112,9 +109,7 @@
dmemory.c dmemory.c
dutil.c dutil.c
dmyblas2.c dmyblas2.c
@ -29,7 +28,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_ddrop_row.c ilu_ddrop_row.c
ilu_dsnode_dfs.c ilu_dsnode_dfs.c
ilu_dcolumn_dfs.c ilu_dcolumn_dfs.c
@@ -168,9 +163,7 @@ @@ -163,9 +158,7 @@
cmemory.c cmemory.c
cutil.c cutil.c
cmyblas2.c cmyblas2.c
@ -39,7 +38,7 @@ diff -Nrua a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
ilu_cdrop_row.c ilu_cdrop_row.c
ilu_csnode_dfs.c ilu_csnode_dfs.c
ilu_ccolumn_dfs.c ilu_ccolumn_dfs.c
@@ -219,9 +212,7 @@ @@ -213,9 +206,7 @@
zmemory.c zmemory.c
zutil.c zutil.c
zmyblas2.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 Tue Jun 14 12:56:22 UTC 2016 - badshah400@gmail.com
@ -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 Wed Sep 1 00:21:25 CEST 1999 - garloff@suse.de
- First creation of package. - First creation of package.

View File

@ -1,7 +1,8 @@
# #
# spec file for package superlu # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # 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) # license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative. # 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} Name: superlu
Summary: A general purpose library for the direct solution of sparse systems of linear equations
# 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
License: BSD-3-Clause License: BSD-3-Clause
Group: Productivity/Scientific/Math Group: Development/Libraries/C and C++
Version: %{ver} Version: 5.2.1
Release: 0 Release: 0
URL: https://portal.nersc.gov/project/sparse/superlu/ %define soname lib%{name}5
Source0: %{pname}-%{version}.tar.gz #Source: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz
# Tarball above is generated with the script below Source: %{name}_%{version}-bsd.tar.gz
Source1: get-tarball.sh Source1: superlu_ug.pdf
Source2: README.SUSE Source2: README.SUSE
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] # PATCH-FIX-OPENSUSE superlu-5.2-remove-mc64ad.patch [bnc#796236]
# The Harwell Subroutine Library (HSL) routine mc64ad.c have been removed # The Harwell Subroutine Library (HSL) routine mc64ad.c have been removed
# from the original sources for legal reasons. This patch disables the inclusion of # 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 Patch3: superlu-5.2-remove-mc64ad.patch
Patch4: superlu-examples_Makefile_remove_itersol.patch Url: http://crd.lbl.gov/~xiaoye/SuperLU/
Patch5: superlu-make.linux.patch BuildRequires: blas-devel
BuildRequires: cmake >= 2.8.12 BuildRequires: cmake >= 2.8.12
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: tcsh
%if %{without hpc}
BuildRequires: blas-devel
BuildRequires: gcc-fortran BuildRequires: gcc-fortran
%else BuildRequires: tcsh
Requires: %{compiler_family}%{?c_f_ver}-compilers-hpc BuildRoot: %{_tmppath}/%{name}-%{version}-build
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
%description %description
SuperLU is an algorithm that uses group theory to optimize LU SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices. decomposition of sparse matrices.
Documentation can be found in the %{name}-doc package or on %package -n %soname
http://www.netlib.org.
%package -n %libname
Summary: SuperLU matrix solver Summary: SuperLU matrix solver
Group: System/Libraries 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 SuperLU is an algorithm that uses group theory to optimize LU
decomposition of sparse matrices. decomposition of sparse matrices.
%package devel %package devel
Summary: Headers and development library for lib%{name}%{?_sover} Summary: Development files for %{name}
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %libname = %version Requires: %soname = %{version}
%if %{with hpc} # The standalone superlu RPM has been eliminated, and the relevant
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel} # files are now in superlu-devel
%hpc_requires_devel # The last standalone superlu RPM was was v3.0
%endif Provides: superlu = %{version}
Recommends: %name-doc Obsoletes: superlu <= 3.0
%description devel %description devel
SuperLU headers and libraries files needed for development The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%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
%prep %prep
%setup -q -n superlu-%{version} %setup -q -n SuperLU_%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1 # superlu_ug.pdf in %%doc
%patch5 -p1 cp %SOURCE1 %SOURCE2 ./
cp %SOURCE2 ./
# Create baselibs.conf dynamically (non-HPC build only).
%if %{without hpc}
cat > %{_sourcedir}/baselibs.conf <<EOF
lib%{name}%{?_sover}
EOF
%endif
%build %build
%{?hpc_setup} # FIXME: Drop the -Denable_tests=OFF flag when MATGEN linking issues are resolved
%if %{without hpc}
%cmake \ %cmake \
%else
module load openblas
%hpc_cmake \
%endif
-DCMAKE_BUILD_TYPE=Release -DUSE_XSDK_DEFAULTS='TRUE' -Denable_tests=OFF -DCMAKE_BUILD_TYPE=Release -DUSE_XSDK_DEFAULTS='TRUE' -Denable_tests=OFF
make %{?_smp_mflags} make %{?_smp_mflags}
cd ..
%install %install
%cmake_install %cmake_install
#fix permissions #fix permissions
chmod 644 MATLAB/* chmod 644 MATLAB/*
# remove all build examples # remove all build examples
cd EXAMPLE cd EXAMPLE
make clean make clean
rm -rf *itersol* .gitignore rm -rf *itersol*
cd .. cd ..
mv EXAMPLE examples 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 cp FORTRAN/README README.fortran
%fdupes -s examples %fdupes -s examples
%if %{with hpc} %check
%{hpc_write_pkgconfig} 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? %post -n %soname -p /sbin/ldconfig
%hpc_write_modules_files
#%Module1.0#####################################################################
proc ModulesHelp { } { %postun -n %soname -p /sbin/ldconfig
puts stderr " " %files -n %soname
puts stderr "This module loads the SuperLU library built with the %{compiler_family} compiler" %defattr(-,root,root,-)
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
%doc README MATLAB README.SUSE %doc README MATLAB README.SUSE
%{?with_hpc:%hpc_dirs} %{_libdir}/*.so.*
%{?with_hpc:%hpc_modules_files}
%{p_libdir}/*.so.*
%files devel %files devel
%doc README.fortran %defattr(-,root,root,-)
%{?with_hpc:%{hpc_pkgconfig_file}} %doc DOC/html examples README.fortran superlu_ug.pdf
%{p_includedir}/%{!?with_hpc:*} %{_includedir}/*.h
%{p_libdir}/*.so %{_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
%changelog %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