Browse Source
libraries/trilinos: Added (trilinos project)
libraries/trilinos: Added (trilinos project)
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>pull/189/head
committed by
Willy Sudiarto Raharjo
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
4 changed files with 272 additions and 0 deletions
-
33libraries/trilinos/README
-
19libraries/trilinos/slack-desc
-
210libraries/trilinos/trilinos.SlackBuild
-
10libraries/trilinos/trilinos.info
@ -0,0 +1,33 @@ |
|||
The Trilinos Project is an effort to develop algorithms and enabling |
|||
technologies within an object-oriented software framework for the |
|||
solution of large-scale, complex multi-physics engineering and |
|||
scientific problems. A unique design feature of Trilinos is its focus |
|||
on packages. |
|||
|
|||
The package has two building methods, the default is for a single |
|||
system (without parallelism). |
|||
|
|||
* The trilinos can also be compiled against individual packages |
|||
(i.e. amd, umfpack and metis) outside of suitesparse.SlackBuild. |
|||
** The suitesparse.SlackBuild, doesn't build metis by default. |
|||
For that you can use the parMETIS.SlackBuild. |
|||
For more details about dependeces the Xyce webpage have a |
|||
list of required depences. |
|||
|
|||
This package is mantained for building Xyce at 32 and 64 bit |
|||
architectures with serial and parallel mode. Nonetheless, some |
|||
required packages for building Xyce are not compiling at 32-bit |
|||
architectures, this is Kokkos. This SlackBuild includes a workaround |
|||
for compiling Trilinos at 32-bit architectures, disabling some packages |
|||
that depends on Kokkos, i.e. Amesos2 and Stokhos. These packages |
|||
enable optional features in Xyce. However, according to the Xyce |
|||
building instructions the ShyLU package is a requirement for |
|||
Parallel Xyce but also depends on Kokkos. |
|||
* The workaround solution may not allow total funtionality of |
|||
Serial and Parallel Xyce on 32-bit architecture. |
|||
|
|||
Optional dependences: |
|||
For enable parallelism set PARALLEL=yes. This requires the |
|||
ParMETIS library and a MPI implementation (openmpi or mpich). |
|||
To enable CUDA set CUDA=yes (Additional requirements: CUDA |
|||
SDK and CUSPARSE). |
@ -0,0 +1,19 @@ |
|||
# HOW TO EDIT THIS FILE: |
|||
# The "handy ruler" below makes it easier to edit a package description. |
|||
# Line up the first '|' above the ':' following the base package name, and |
|||
# the '|' on the right side marks the last column you can put a character in. |
|||
# You must make exactly 11 lines for the formatting to be correct. It's also |
|||
# customary to leave one space after the ':' except on otherwise blank lines. |
|||
|
|||
|-----handy-ruler------------------------------------------------------| |
|||
trilinos: trilinos (trilinos project) |
|||
trilinos: |
|||
trilinos: The Trilinos Project is an effort to develop algorithms and enabling |
|||
trilinos: technologies within an object-oriented software framework for the |
|||
trilinos: solution of large-scale, complex multi-physics engineering and |
|||
trilinos: scientific problems. A unique design feature of Trilinos is its focus |
|||
trilinos: on packages. |
|||
trilinos: |
|||
trilinos: |
|||
trilinos: |
|||
trilinos: |
@ -0,0 +1,210 @@ |
|||
#!/bin/bash |
|||
|
|||
# Slackware build script for trilinos |
|||
|
|||
# Copyright 2015-2022 William PC - Seattle (USA) |
|||
# All rights reserved. |
|||
# |
|||
# Redistribution and use of this script, with or without modification, is |
|||
# permitted provided that the following conditions are met: |
|||
# |
|||
# 1. Redistributions of this script must retain the above copyright |
|||
# notice, this list of conditions and the following disclaimer. |
|||
# |
|||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED |
|||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
|||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
|||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
|||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
|
|||
PRGNAM=trilinos |
|||
VERSION=${VERSION:-13.2.0} |
|||
BUILD=${BUILD:-1} |
|||
TAG=${TAG:-_SBo} |
|||
PKGTYPE=${PKGTYPE:-tgz} |
|||
|
|||
if [ -z "$ARCH" ]; then |
|||
case "$( uname -m )" in |
|||
i?86) ARCH=i586 ;; |
|||
arm*) ARCH=arm ;; |
|||
*) ARCH=$( uname -m ) ;; |
|||
esac |
|||
fi |
|||
|
|||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what |
|||
# the name of the created package would be, and then exit. This information |
|||
# could be useful to other scripts. |
|||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then |
|||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" |
|||
exit 0 |
|||
fi |
|||
|
|||
|
|||
|
|||
CWD=$(pwd) |
|||
TMP=${TMP:-/tmp/SBo} |
|||
PKG=$TMP/package-$PRGNAM |
|||
OUTPUT=${OUTPUT:-/tmp} |
|||
|
|||
if [ "$ARCH" = "i586" ]; then |
|||
SLKCFLAGS="-O2 -march=i586 -mtune=i686" |
|||
LIBDIRSUFFIX="" |
|||
elif [ "$ARCH" = "i686" ]; then |
|||
SLKCFLAGS="-O2 -march=i686 -mtune=i686" |
|||
LIBDIRSUFFIX="" |
|||
elif [ "$ARCH" = "x86_64" ]; then |
|||
SLKCFLAGS="-O2 -fPIC" |
|||
LIBDIRSUFFIX="64" |
|||
else |
|||
SLKCFLAGS="-O2" |
|||
LIBDIRSUFFIX="" |
|||
fi |
|||
|
|||
set -e |
|||
|
|||
rm -rf $PKG |
|||
mkdir -p $TMP $PKG $OUTPUT |
|||
cd $TMP |
|||
rm -rf Trilinos-$PRGNAM-release-13-2-0 |
|||
tar xvf $CWD/$PRGNAM-release-13-2-0.tar.gz |
|||
cd Trilinos-$PRGNAM-release-13-2-0 |
|||
chown -R root:root . |
|||
find -L . \ |
|||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ |
|||
-o -perm 511 \) -exec chmod 755 {} \; -o \ |
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ |
|||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; |
|||
|
|||
# Use CUDA SDK and CUSPARSE. |
|||
if [ "${CUDA:-no}" == "yes" ]; then |
|||
OPT_DEPS="$OPT_DEPS -DTPL_ENABLE_CUDA -DTPL_ENABLE_CUSPARSE" |
|||
fi |
|||
|
|||
if [ "${EXAMPLES:-yes}" == "no" ]; then |
|||
OPT_DEPS="$OPT_DEPS -DTrilinos_ENABLE_EXAMPLES=OFF" |
|||
fi |
|||
|
|||
CFGCOMMON=" |
|||
-DCMAKE_MAKE_PROGRAM=make \ |
|||
-DTPL_ENABLE_BLAS=ON \ |
|||
-DTPL_ENABLE_LAPACK=ON \ |
|||
-DTrilinos_ENABLE_NOX=ON \ |
|||
-DNOX_ENABLE_LOCA=ON \ |
|||
-DTrilinos_ENABLE_EpetraExt=ON \ |
|||
-DEpetraExt_BUILD_BTF=ON \ |
|||
-DEpetraExt_BUILD_EXPERIMENTAL=ON \ |
|||
-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON \ |
|||
-DTrilinos_ENABLE_AztecOO=ON \ |
|||
-DTrilinos_ENABLE_Belos=ON \ |
|||
-DTrilinos_ENABLE_TrilinosCouplings=ON \ |
|||
-DTrilinos_ENABLE_Ifpack=ON \ |
|||
-DTrilinos_ENABLE_Isorropia=ON \ |
|||
-DTrilinos_ENABLE_Teuchos=ON \ |
|||
-DTeuchos_ENABLE_COMPLEX=ON \ |
|||
-DTrilinos_ENABLE_Amesos=ON \ |
|||
-DAmesos_ENABLE_KLU=ON \ |
|||
-DAmesos_ENABLE_UMFPACK=ON \ |
|||
-DTrilinos_ENABLE_Sacado=ON \ |
|||
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \ |
|||
-DTPL_ENABLE_AMD=ON \ |
|||
-DAMD_LIBRARY_DIRS=/usr/lib${LIBDIRSUFFIX} \ |
|||
-DTPL_AMD_INCLUDE_DIRS=/usr/include/suitesparse \ |
|||
-DTPL_ENABLE_UMFPACK=ON \ |
|||
-DUMFPACK_LIBRARY_DIRS=/usr/lib${LIBDIRSUFFIX} \ |
|||
-DTPL_UMFPACK_INCLUDE_DIRS=/usr/include/suitesparse \ |
|||
" |
|||
|
|||
## Workaround Kokkos error in 32-bit |
|||
# these packages gives optional features to Xyce |
|||
if [ "$ARCH" = "x86_64" ]; then |
|||
CFGCOMMON="$CFGCOMMON \ |
|||
-DTrilinos_ENABLE_Amesos2=ON \ |
|||
-DAmesos2_ENABLE_KLU2=ON \ |
|||
-DAmesos2_ENABLE_Basker=ON \ |
|||
-DTrilinos_ENABLE_Stokhos=ON \ |
|||
-DTrilinos_ENABLE_Kokkos=ON" |
|||
else |
|||
CFGCOMMON="$CFGCOMMON \ |
|||
-DTrilinos_ENABLE_Kokkos=OFF" |
|||
fi |
|||
|
|||
CFGSERIAL="$CFGCOMMON |
|||
-DCMAKE_C_COMPILER=/usr/bin/gcc \ |
|||
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \ |
|||
-DCMAKE_Fortran_COMPILER=/usr/bin/gfortran" |
|||
|
|||
CFGPARALLEL="$CFGCOMMON |
|||
-DCMAKE_C_COMPILER=/usr/bin/mpicc \ |
|||
-DCMAKE_CXX_COMPILER=/usr/bin/mpic++ \ |
|||
-DCMAKE_Fortran_COMPILER=/usr/bin/mpif77 \ |
|||
-DTPL_ENABLE_ParMETIS=ON \ |
|||
-DParMETIS_LIBRARY_DIRS=/usr/lib${LIBDIRSUFFIX} \ |
|||
-DTPL_ParMETIS_INCLUDE_DIRS=/usr/include/parmetis \ |
|||
-DTPL_ENABLE_MPI=ON \ |
|||
-DTrilinos_ENABLE_Zoltan=ON" |
|||
|
|||
# ShyLU is required for use in Parallel Xyce |
|||
# however it depends on kokkos that doesn't compile |
|||
# on 32-bit. Yeah, another workaround. |
|||
if [ "$ARCH" = "x86_64" ]; then |
|||
CFGPARALLEL="$CFGPARALLEL \ |
|||
-DTrilinos_ENABLE_ShyLU=ON" |
|||
else |
|||
CFGPARALLEL="$CFGPARALLEL \ |
|||
-DTrilinos_ENABLE_ShyLU=OFF" |
|||
fi |
|||
|
|||
CFGTRILINOS=$CFGSERIAL |
|||
BUILDDIR=build-serial |
|||
|
|||
if [ "${PARALLEL:-no}" == "yes" ]; then |
|||
CFGTRILINOS=$CFGPARALLEL |
|||
BUILDDIR=build-parallel |
|||
#SLKCFLAGS="CC=mpicc CXX=mpic++ F77=mpif77 $SLKCFLAGS" |
|||
fi |
|||
|
|||
rm -fr $BUILDDIR |
|||
mkdir -p $BUILDDIR |
|||
cd $BUILDDIR |
|||
|
|||
cmake \ |
|||
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ |
|||
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ |
|||
-DCMAKE_Fortran_FLAGS:STRING="$SLKCFLAGS" \ |
|||
-DCMAKE_INSTALL_PREFIX=/usr \ |
|||
-DTrilinos_INSTALL_LIB_DIR=/usr/lib${LIBDIRSUFFIX} \ |
|||
-DTrilinos_INSTALL_INCLUDE_DIR=/usr/include \ |
|||
$CFGTRILINOS \ |
|||
$OPT_DEPS \ |
|||
-DBUILD_SHARED_LIBS=ON \ |
|||
-DCMAKE_BUILD_TYPE=RELEASE .. |
|||
|
|||
# check if this still necessary |
|||
for f in $(grep -r -l /usr//usr/lib .); do |
|||
sed -i -e 's:/usr//usr/lib:/usr/lib:g' $f |
|||
done |
|||
|
|||
make |
|||
ctest |
|||
make install DESTDIR=$PKG |
|||
cd .. |
|||
|
|||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ |
|||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true |
|||
|
|||
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true |
|||
|
|||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION |
|||
cp -a {Copyright.txt,LICENSE,README,RELEASE_NOTES} $PKG/usr/doc/$PRGNAM-$VERSION |
|||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild |
|||
|
|||
mkdir -p $PKG/install |
|||
cat $CWD/slack-desc > $PKG/install/slack-desc |
|||
|
|||
cd $PKG |
|||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |
@ -0,0 +1,10 @@ |
|||
PRGNAM="trilinos" |
|||
VERSION="13.2.0" |
|||
HOMEPAGE="https://github.com/trilinos/Trilinos" |
|||
DOWNLOAD="https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-13-2-0.tar.gz" |
|||
MD5SUM="099680cd3660dba5ec447ddc50a8406c" |
|||
DOWNLOAD_x86_64="" |
|||
MD5SUM_x86_64="" |
|||
REQUIRES="lapack blas suitesparse" |
|||
MAINTAINER="William PC" |
|||
EMAIL="w_calandrini[at]hotmail[dot]com" |
Write
Preview
Loading…
Cancel
Save
Reference in new issue