Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37559670
en ru br
Репозитории ALT
S:5.3.5-alt3
5.1: 4.8.4-alt3
www.altlinux.org/Changes

Группа :: Науки/Математика
Пакет: mumps

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define mpiimpl openmpi
%define mpidir %_libexecdir/%mpiimpl

%define somver 4
%define sover %somver.8.4
Name: mumps
Version: 4.8.4
Release: alt3
Summary: MUltifrontal Massively Parallel sparse direct Solver
License: Free
Group: Sciences/Mathematics
Url: http://mumps.enseeiht.fr/
Packager: Eugeny A. Rostovtsev (REAL) <real at altlinux.org>

Source: ftp://ftp.mcs.anl.gov/pub/petsc/externalpackages/MUMPS_4.8.4.tar.gz
Source1: Makefile.inc
Source2: Makefile.inc.seq

BuildPreReq: %mpiimpl-devel libatlas-devel
BuildPreReq: libpastix-devel libscotch-devel libparmetis-devel
BuildPreReq: libscalapack-devel libblacs-devel libarpack-devel

%description
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination. Please read the README file and
the documentation for a complete list of functionalities.
Documentation and publications related to
MUMPS can also be found at http://mumps.enseeiht.fr/
or at http://graal.ens-lyon.fr/MUMPS

%package -n lib%name-headers
Summary: Headers for MUMPS
Group: Development/Other

%description -n lib%name-headers
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains headers for MUMPS.

%package -n lib%name-devel-doc
Summary: Documentation for MUMPS
Group: Development/Documentation
BuildArch: noarch

%description -n lib%name-devel-doc
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains development documentation for MUMPS.

%package -n lib%name
Summary: Shared libraries of MUMPS
Group: System/Libraries

%description -n lib%name
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains shared libraries of MUMPS.

%package -n lib%name-devel
Summary: Development files of MUMPS
Group: Development/Other
Requires: lib%name-headers = %version-%release
Requires: lib%name = %version-%release
Conflicts: lib%name-devel < %version-%release
Obsoletes: lib%name-devel < %version-%release

%description -n lib%name-devel
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains development files of MUMPS.

%package -n lib%name-devel-static
Summary: Static libraries of MUMPS
Group: Development/Other
Requires: lib%name-headers = %version-%release
Requires: lib%name-devel = %version-%release
Conflicts: lib%name-devel < %version-%release

%description -n lib%name-devel-static
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains static libraries of MUMPS.

%package -n lib%name-seq
Summary: Shared libraries of MUMPS (sequential version)
Group: System/Libraries

%description -n lib%name-seq
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains shared libraries of MUMPS (sequential version).

%package -n lib%name-seq-devel
Summary: Development files of MUMPS (sequential version)
Group: Development/Other
Requires: lib%name-headers = %version-%release
Requires: lib%name = %version-%release
Conflicts: lib%name-devel < %version-%release
Obsoletes: lib%name-devel < %version-%release

%description -n lib%name-seq-devel
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains development files of MUMPS (sequential version).

%package -n lib%name-seq-devel-static
Summary: Static libraries of MUMPS (sequential version)
Group: Development/Other
Requires: libfakempi-devel = %version-%release
Requires: lib%name-headers = %version-%release
Requires: lib%name-devel = %version-%release
Conflicts: lib%name-devel < %version-%release

%description -n lib%name-seq-devel-static
MUMPS 4.8.4 solves a sparse system of linear equations A x = b
using Gaussian elimination.

This package contains static libraries of MUMPS (sequential version).

%package -n libfakempi-devel
Summary: Sequential MPI static library
Group: Development/Other

%description -n libfakempi-devel
This is sequential MPI static library, dummy MPI implementation for
uniprocessor machines only, no parallel.

%prep
%setup
install -m644 %SOURCE1 %SOURCE2 .

%build
mpi-selector --set %mpiimpl
source %mpidir/bin/mpivars.sh

function buildIt() {
for i in clean all; do
%make \
LIBDIR=%_libdir \
LIBEXECDIR=%_libexecdir \
MPIDIR=%mpidir \
TOPDIR=$PWD $i
done
}

mkdir lib
buildIt

mkdir -p par/lib
cp PORD/lib/*.a par/lib
rm -f lib/libpord.a
cp lib/* par/lib
mkdir -p par/bin
cp examples/c_example examples/?simpletest par/bin

cp -f Makefile.inc.seq Makefile.inc
#sed -i -e '15s/c_example//' examples/Makefile
buildIt

pushd examples
for i in s d c z; do
mv ${i}simpletest ${i}simpletest_seq
done
mv c_example c_example_seq
popd
pushd lib
for i in $(ls|sed 's/\.a//'); do
mv $i.a ${i}_seq.a
done
popd

mv libseq/libmpiseq.a libseq/libmpi.a

%install
source %mpidir/bin/mpivars.sh

install -d %buildroot%_bindir
install -d %buildroot%_libdir
install -d %buildroot%_includedir/PORD
install -d %buildroot%_docdir/lib%name-devel
install -d %buildroot%_libexecdir/fakempi/lib
install -d %buildroot%_libexecdir/fakempi/include

install -m755 par/bin/* examples/*_seq %buildroot%_bindir
install -m644 par/lib/* lib/* %buildroot%_libdir
install -p -m644 include/* src/*.h %buildroot%_includedir
install -p -m644 PORD/include/*.h %buildroot%_includedir/PORD
install -p -m644 doc/* %buildroot%_docdir/lib%name-devel
install -p -m644 libseq/*.a %buildroot%_libexecdir/fakempi/lib
install -p -m644 libseq/*.h %buildroot%_libexecdir/fakempi/include

# shared libraries


function makeShared() {
if [ "$2" = "" ]; then
LIBS="$ADDLIB"
else
LIBS="$ADDLIB_SEQ"
fi
ar x ../$1$2.a
mpif77 -shared * -L.. $LIBS \
-lscotchmetis -lesmumps -lscalapack -lblacs -larpack_LINUX \
-Wl,-R%mpidir/lib \
-Wl,-soname,$1$2.so.%somver -o ../$1$2.so.%sover
ln -s $1$2.so.%sover ../$1$2.so.%somver
ln -s $1$2.so.%somver ../$1$2.so
rm -f *
}

pushd %buildroot%_libdir
mkdir tmp
pushd tmp
for i in pord mumps_common cmumps dmumps smumps zmumps
do
makeShared lib$i
makeShared lib$i _seq
ADDLIB="-l$i $ADDLIB"
ADDLIB_SEQ="-l${i}_seq $ADDLIB_SEQ"
done
popd
rmdir tmp
popd

%files
%doc ChangeLog LICENSE README
%_bindir/*

%files -n lib%name-headers
%_includedir/*

%files -n lib%name
%_libdir/*.so.*
%exclude %_libdir/*_seq.so.*

%files -n lib%name-devel
%_libdir/*.so
%exclude %_libdir/*_seq.so

%files -n lib%name-devel-static
%_libdir/*.a
%exclude %_libdir/*_seq.a

%files -n lib%name-seq
%_libdir/*_seq.so.*

%files -n lib%name-seq-devel
%_libdir/*_seq.so

%files -n lib%name-seq-devel-static
%_libdir/*_seq.a

%files -n libfakempi-devel
%_libexecdir/fakempi

%files -n lib%name-devel-doc
%_docdir/lib%name-devel

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin