Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37865961
en ru br
ALT Linux repos
S:2.1.0-alt3
5.0: 1.8.0-alt1

Group :: Sciences/Mathematics
RPM: libscalapack

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define origname scalapack

Name: lib%origname
Version: 1.8.0
Release: alt1
Summary: Scalable LAPACK library
License: LGPL
Group: Sciences/Mathematics
Url: http://www.netlib.org/scalapack/
Packager: Eugeny A. Rostovtsev (REAL) <real at altlinux.org>

Source: http://www.netlib.org/scalapack/scalapack-1.8.0.tgz
Source1: SLmake.inc
Source2: http://www.netlib.org/scalapack/manpages.tgz

BuildPreReq: libatlas-devel-static liblapack-devel-static gcc-fortran
BuildPreReq: mvapich2-devel
BuildPreReq: libblacs libblacs-debug

%description
The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines
redesigned for distributed memory MIMD parallel computers. It is currently
written in a Single-Program-Multiple-Data style using explicit message passing
for interprocessor communication. It assumes matrices are laid out in a
two-dimensional block cyclic decomposition.

ScaLAPACK is designed for heterogeneous computing and is portable on any
computer that supports MPI or PVM.

Like LAPACK, the ScaLAPACK routines are based on block-partitioned algorithms in
order to minimize the frequency of data movement between different levels of the
memory hierarchy. (For such machines, the memory hierarchy includes the
off-processor memory of other processors, in addition to the hierarchy of
registers, cache, and local memory on each processor.) The fundamental building
blocks of the ScaLAPACK library are distributed memory versions (PBLAS) of the
Level 1, 2 and 3 BLAS, and a set of Basic Linear Algebra Communication
Subprograms (BLACS) for communication tasks that arise frequently in parallel
linear algebra computations. In the ScaLAPACK routines, all interprocessor
communication occurs within the PBLAS and the BLACS. One of the design goals of
ScaLAPACK was to have the ScaLAPACK routines resemble their LAPACK equivalents
as much as possible.

If You need man pages, install libscalapack-manpages.

%package debug
Summary: Debug version of ScaLAPACK
Group: Sciences/Mathematics

%description debug
Debug version of ScaLAPACK.

If You need man pages, install libscalapack-manpages.

%package devel
Summary: Headers for ScaLAPACK
Group: Sciences/Mathematics
BuildArch: noarch
Requires: %name = %version-%release

%description devel
Headers for ScaLAPACK.

%package -n pblas-tests
Summary: Tests for PBLAS
Group: Sciences/Mathematics

%description -n pblas-tests
Tests for PBLAS.

%package -n pblas-tests-data
Summary: Test data for PBLAS
Group: Sciences/Mathematics
BuildArch: noarch
Requires: pblas-tests = %version-%release

%description -n pblas-tests-data
Test data for PBLAS.

%package -n pblas-timing
Summary: PBLAS timing
Group: Sciences/Mathematics

%description -n pblas-timing
PBLAS timing.

%package -n pblas-timing-data
Summary: Data for PBLAS timing
Group: Sciences/Mathematics
BuildArch: noarch
Requires: pblas-timing = %version-%release

%description -n pblas-timing-data
Data for PBLAS timing.

%package -n pblas-devel
Summary: Headers for PBLAS
Group: Sciences/Mathematics
BuildArch: noarch
Requires: %name = %version-%release

%description -n pblas-devel
Headers for PBLAS.

%package -n %origname-redist
Summary: Tests for ScaLAPACK redist
Group: Sciences/Mathematics

%description -n %origname-redist
Tests for ScaLAPACK redist.

%package -n %origname-redist-data
Summary: Test data for ScaLAPACK redist
Group: Sciences/Mathematics
BuildArch: noarch
Requires: %origname-redist = %version-%release

%description -n %origname-redist-data
Test data for ScaLAPACK redist.

%package -n %origname-tests
Summary: Tests for ScaLAPACK
Group: Sciences/Mathematics

%description -n %origname-tests
Tests for ScaLAPACK.

%package -n %origname-tests-data
Summary: Test data for ScaLAPACK
Group: Sciences/Mathematics
BuildArch: noarch
Requires: %origname-tests = %version-%release

%description -n %origname-tests-data
Test data for ScaLAPACK.

%package -n %origname-example
Summary: Example for ScaLAPACK
Group: Sciences/Mathematics

%description -n %origname-example
Example for ScaLAPACK.

%package -n %origname-example-data
Summary: Example data for ScaLAPACK
Group: Sciences/Mathematics
BuildArch: noarch
Requires: %origname-example = %version-%release

%description -n %origname-example-data
Example data for ScaLAPACK.

%package manpages
Summary: Man pages of ScaLAPACK
Group: Sciences/Mathematics
BuildArch: noarch

%description manpages
Man pages of ScaLAPACK.


%prep
%setup -q -n %origname-%version
install -p -m644 %SOURCE1 ./
tar -xzvf %SOURCE2

%build
BUILDDIR=`pwd`
sed -i 's|(LIBEXECDIR)|%_libexecdir|g' SLmake.inc
sed -i 's|(LIBDIR)|%_libdir|g' SLmake.inc
sed -i "s|(HOME)|$BUILDDIR|g" SLmake.inc
sed -i -e 's/(OPTFLAGS)/%optflags/g' SLmake.inc
mkdir -pv TESTING0
cp -f TESTING/*.dat TESTING0/
make lib
mkdir -pv LIB0
mv *.a LIB0/
sed -i -e 's/^\(BLACSDBGLVL\).*/\1  = 1/' SLmake.inc
make lib what=clean
for i in pblaslib pblasexe toolslib redistlib redistexe scalapacklib \
scalapackexe example
do
make $i
# for know, what package have executables
# pushd TESTING
# ls x* > ../$i.list
# mv x* %buildroot%_bindir
# popd
done

%install
mkdir -pv %buildroot%_bindir
mkdir -pv %buildroot%_libdir
mkdir -pv %buildroot%_includedir
mkdir -pv %buildroot%_datadir/%origname/tests
mkdir -pv %buildroot%_datadir/%origname/pblas-tests
mkdir -pv %buildroot%_datadir/%origname/pblas-timing
mkdir -pv %buildroot%_datadir/%origname/redist
mkdir -pv %buildroot%_datadir/%origname/example
mkdir -pv %buildroot%_mandir
rm SRC/pblas.h
mv TESTING/x* %buildroot%_bindir/
mv libscalapack*.a %buildroot%_libdir/
mv LIB0/libscalapack*.a %buildroot%_libdir/
mv PBLAS/SRC/*.h %buildroot%_includedir/
mv REDIST/SRC/*.h %buildroot%_includedir/
mv SRC/*.h %buildroot%_includedir/
mv TESTING0/*.dat %buildroot%_datadir/%origname/tests/
mv PBLAS/TESTING/*.dat %buildroot%_datadir/%origname/pblas-tests/
mv PBLAS/TIMING/*.dat %buildroot%_datadir/%origname/pblas-timing/
mv REDIST/TESTING/*.dat %buildroot%_datadir/%origname/redist/
mv EXAMPLE/*.dat %buildroot%_datadir/%origname/example/
mv MANPAGES/man/manl %buildroot%_mandir/

%files
%doc README
%_libdir/*-0.a
%_datadir/%origname
%exclude %_datadir/%origname/tests
%exclude %_datadir/%origname/pblas-tests
%exclude %_datadir/%origname/pblas-timing
%exclude %_datadir/%origname/redist
%exclude %_datadir/%origname/example

%files debug
%doc README
%_libdir/*-1.a

%files devel
%_includedir/redist.h
%_includedir/tools.h
%_includedir/pxsyevx.h

%files -n pblas-tests
%_bindir/x?pblas?tst

%files -n pblas-tests-data
%_datadir/%origname/pblas-tests

%files -n pblas-timing
%_bindir/x?pblas?tim

%files -n pblas-timing-data
%_datadir/%origname/pblas-timing

%files -n pblas-devel
%_includedir/pblas.h
%_includedir/PB*.h

%files -n %origname-redist
%_bindir/x???mr

%files -n %origname-redist-data
%_datadir/%origname/redist

%files -n %origname-tests
%_bindir/*
%exclude %_bindir/x?pblas*
%exclude %_bindir/x???mr
%exclude %_bindir/x?scaex

%files -n %origname-tests-data
%_datadir/%origname/tests

%files -n %origname-example
%_bindir/x?scaex

%files -n %origname-example-data
%_datadir/%origname/example

%files manpages
%_mandir/manl/*

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin