Introduction
Introduction Statistics Contact Development Disclaimer Help
tFix dependencies, download external - petsc-git-PKGBUILD - build template for …
git clone git://src.adamsgaard.dk/petsc-git-PKGBUILD
Log
Files
Refs
---
commit 4df4a1efe749f56b84f6e08107c7ac8dd43c827c
parent acf8ee6afcc1b738e1337c2901eeb948346c64d6
Author: Lucas Heitzmann Gabrielli <[email protected]>
Date: Thu, 21 May 2020 09:12:04 -0300
Fix dependencies, download external
Diffstat:
M .SRCINFO | 34 +++++++++--------------------…
M PKGBUILD | 118 ++++++++++++++++++-----------…
D test_optdepends.sh | 139 ------------------------------
3 files changed, 80 insertions(+), 211 deletions(-)
---
diff --git a/.SRCINFO b/.SRCINFO
t@@ -1,6 +1,6 @@
pkgbase = petsc-git
- pkgdesc = Portable, extensible toolkit for scientific computation with…
- pkgver = 20200512
+ pkgdesc = Portable, extensible toolkit for scientific computation (ext…
+ pkgver = 20200520
pkgrel = 1
url = https://www.mcs.anl.gov/petsc/
install = petsc.install
t@@ -11,37 +11,23 @@ pkgbase = petsc-git
makedepends = gcc-fortran
makedepends = cmake
makedepends = sowing
- depends = python2
+ makedepends = python2
depends = openmpi
- depends = boost
depends = lapack
depends = fftw
depends = hdf5
- optdepends = hdf5: large files
- optdepends = fftw: Fast-Fourier Transform
- optdepends = openblas: Linear algebra libraries
- optdepends = scalapack: Parallel memory linear algebra
- optdepends = mumps: Sparse solver library
- optdepends = hypre: Large and sparse linear with massive parallel comp…
- optdepends = suitesparse: Sparse matrix library
- optdepends = metis: Partitioning library (for meshes)
- optdepends = scotch: Partitioning with sparse matrices
- optdepends = superlu: Subroutines for sparsse linear systems
- optdepends = eigen: Lightweight C++ template library for vector and ma…
- optdepends = openmp: Parallel distributed tasks
- optdepends = hwloc: Portable Hardware Locality (abstraction of hierarc…
- optdepends = cgns: Recording and recovering computer data
- optdepends = png
- optdepends = med>=4.0: Data Modelization and Exchanges (meshes)
- optdepends = boost: Free peer-reviewed portable C++ source libraries
- optdepends = yaml: configuration files
+ depends = suitesparse
optdepends = opencl: GPU computing
+ optdepends = hwloc: hardware locality
+ optdepends = cgns: CFD data support
+ optdepends = libpng: PNG support
+ optdepends = libyaml: YAML configuration support
+ optdepends = libx11: GUI tools
+ optdepends = python: Tools, examples, tutorials
provides = petsc
conflicts = petsc
source = petsc::git+https://gitlab.com/petsc/petsc.git#branch=maint
- source = test_optdepends.sh
sha256sums = SKIP
- sha256sums = 2c21313b21b7a76ed4d39d040ef60462f8760ae3d4b76ff6aa717ebc4…
pkgname = petsc-git
diff --git a/PKGBUILD b/PKGBUILD
t@@ -1,44 +1,27 @@
-# Based on AUR petsc and petsc-git package. Adapted to my
-# MOOSE requirements
-
# Maintainer: Lucas H. Gabrielli <[email protected]>
pkgname=petsc-git
-pkgver=20200512
+pkgver=20200520
pkgrel=1
_config=linux-c-opt
-pkgdesc="Portable, extensible toolkit for scientific computation with MUMPS, H…
+pkgdesc="Portable, extensible toolkit for scientific computation (external dow…
provides=(petsc)
conflicts=(petsc)
arch=('i686' 'x86_64')
url="https://www.mcs.anl.gov/petsc/"
license=('BSD')
-depends=('python2' 'openmpi' 'boost' 'lapack' 'fftw' 'hdf5')
-makedepends=('gcc' 'gcc-fortran' 'cmake' 'sowing')
-optdepends=("hdf5: large files"
- "fftw: Fast-Fourier Transform"
- "openblas: Linear algebra libraries"
- "scalapack: Parallel memory linear algebra"
- "mumps: Sparse solver library"
- "hypre: Large and sparse linear with massive parallel computing"
- "suitesparse: Sparse matrix library"
- "metis: Partitioning library (for meshes)"
- "scotch: Partitioning with sparse matrices"
- "superlu: Subroutines for sparsse linear systems"
- "eigen: Lightweight C++ template library for vector and matrix mat…
- "openmp: Parallel distributed tasks"
- "hwloc: Portable Hardware Locality (abstraction of hierarchical ar…
- "cgns: Recording and recovering computer data"
- "png"
- "med>=4.0: Data Modelization and Exchanges (meshes)"
- "boost: Free peer-reviewed portable C++ source libraries"
- "yaml: configuration files"
- "opencl: GPU computing")
+depends=('openmpi' 'lapack' 'fftw' 'hdf5' 'suitesparse')
+makedepends=('gcc' 'gcc-fortran' 'cmake' 'sowing' 'python2')
+optdepends=("opencl: GPU computing"
+ "hwloc: hardware locality"
+ "cgns: CFD data support"
+ "libpng: PNG support"
+ "libyaml: YAML configuration support"
+ "libx11: GUI tools"
+ "python: Tools, examples, tutorials")
install=petsc.install
-source=(petsc::git+https://gitlab.com/petsc/petsc.git#branch=maint
- test_optdepends.sh)
-sha256sums=('SKIP'
- '2c21313b21b7a76ed4d39d040ef60462f8760ae3d4b76ff6aa717ebc43a2275b')
+source=(petsc::git+https://gitlab.com/petsc/petsc.git#branch=maint)
+sha256sums=('SKIP')
_petsc_arch="arch-${_config}"
t@@ -60,16 +43,16 @@ _petsc_arch="arch-${_config}"
generic_flags="-fPIC -fopenmp -O3 -march=x86-64 -mtune=generic"
# generic_flags="-fPIC -fopenmp -O3 -march=amdfam10 -mtune=generic"
-export COPTFLAGS=-O3
+export COPTFLAGS=-O3
export CXXOPTFLAGS=-O3
-export FOPTFLAGS=-O3
-export CPPFLAGS="$generic_flags -O2 -D-FORTIFY-SOURCE=2"
-export CFLAGS="$generic_flags"
-export CXXFLAGS="$generic_flags"
-export FFLAGS="$generic_flags"
-export FCFLAGS="$generic_flags"
-export F90FLAGS="$generic_flags"
-export F77FLAGS="$generic_flags"
+export FOPTFLAGS=-O3
+export CPPFLAGS="$generic_flags -O2 -D-FORTIFY-SOURCE=2"
+export CFLAGS="$generic_flags"
+export CXXFLAGS="$generic_flags"
+export FFLAGS="$generic_flags"
+export FCFLAGS="$generic_flags"
+export F90FLAGS="$generic_flags"
+export F77FLAGS="$generic_flags"
pkgver() {
t@@ -86,9 +69,7 @@ prepare() {
done < <( find ${srcdir} -name "*" -type f -exec grep -le "$MATCH" \{\} + )
cd "${srcdir}/petsc"
- # patch -p1 < ../patch.diff
sed -i 's-\(self.publicInstall[^=]*=[[:space:]]\)[^#]*-\10 -g' config/BuildS…
-
sed -i "s/\(raise RuntimeError('--download-openblas libraries cannot be used…
}
t@@ -96,11 +77,11 @@ prepare() {
build() {
cd petsc
- declare -a CONFOPTS
# Run python2 ./configure --help for the meaning of this
+ declare -a CONFOPTS
CONFOPTS=(
--COPTFLAGS="$COPTFLAGS"
- --CXXOPTFLAGS="CXXOPTFLAGS"
+ --CXXOPTFLAGS="$CXXOPTFLAGS"
--CPPFLAGS="$CPPFLAGS"
--CFLAGS="$CFLAGS"
--CXXFLAGS="$CXXFLAGS"
t@@ -115,18 +96,59 @@ build() {
--with-shared-libraries=1
--with-zlib=1
+ --with-fftw=1
+ --with-hdf5=1
+ --with-suitesparse=1
+
--with-scalar-type=complex
- # Add this to test_optdepends.sh
- --with-opencl=1
- --with-yaml=1
+
+ --download-amd=1
+ --download-eigen=1
+ --download-hypre=1
+ --download-metis=1
+ --download-mumps=1
+ --download-parmetis=1
+ #--download-party=1 # not working
+ --download-ptscotch=1
+ --download-scalapack=1
+ #--download-suitesparse=1 # not working
+ #--download-sundials=1 # incompatible with complex
+ --download-superlu=1
+ --download-superlu_dist=1
)
+ CONFOPTS=( "${CONFOPTS[@]}" )
+
+ # Add OpenCL support
+ OPENCL_DIR="/usr/include/CL/"
+ if [ -f "${OPENCL_DIR}/cl.h" ]; then
+ CONFOPTS="${CONFOPTS} --with-opencl=1"
+ fi
+
+ # Add hwloc support
+ if [ -f "/usr/lib/libhwloc.so" ]; then
+ CONFOPTS="${CONFOPTS} --with-hwloc=1 --with-hwloc-pkg-config=/usr/lib/pkgc…
+ fi
+
+ # Add CGNS support
+ if [ -f "/usr/lib/libcgns.so" ]; then
+ CONFOPTS="${CONFOPTS} --with-cgns=1"
+ fi
+
+ # Add PNG support
+ if [ -f "/usr/lib/libpng.so" ]; then
+ CONFOPTS="${CONFOPTS} --with-png=1 --with-png-pkg-config=/usr/lib/pkgconfi…
+ fi
+
+ # Add YAML support
+ if [ -f "/usr/lib/libyaml.so" ]; then
+ CONFOPTS="${CONFOPTS} --with-yaml=1 --with-yaml-pkg-config=/usr/lib/pkgcon…
+ fi
+
# if --with-debugging=1 is set then PETSC_ARCH is automatically set to
# "linux-c-debug" for some things, so _config should be changed to "linux-c-…
#CONFOPTS="${CONFOPTS} --with-debugging=1"
- CONFOPTS=( "${CONFOPTS[@]}" $(sh "${srcdir}"/test_optdepends.sh) )
-
dirpkg=${srcdir}/petsc/${_petsc_arch}/externalpackages/
export PETSC_DIR="${srcdir}/petsc"
diff --git a/test_optdepends.sh b/test_optdepends.sh
t@@ -1,139 +0,0 @@
-#!/bin/bash
-
-# Test if external packages for PETSC are installed
-
-# CONFOPTS=""
-
-# # External downloads
-# for external_pkg in hypre fblaslapack metis parmetis superlu_dist mumps scal…
-# CONFOPTS="${CONFOPTS} --download-${external_pkg}=1"
-# done
-
-# Add hypre support
-if [ -f "/usr/lib/libHYPRE.so" ]; then
- CONFOPTS="${CONFOPTS} --with-hypre=1"
-fi
-
-# Add mumps support
-if [ -f "/usr/lib/libmumps_common.so" ]; then
- CONFOPTS="${CONFOPTS} --with-mumps=1"
-fi
-
-# Add fftw support
-if [ -f "/usr/lib/libfftw3_mpi.so" ]; then
- CONFOPTS="${CONFOPTS} --with-fftw=1"
-fi
-
-# Add hdf5 support
-if [[ "$(h5stat -V)" ]]; then
- CONFOPTS="${CONFOPTS} --with-hdf5=1"
-fi
-
-# Add scalapack support
-if [ -f "/usr/lib/pkgconfig/scalapack.pc" ]; then
- CONFOPTS="${CONFOPTS} --with-scalapack=1"
-fi
-
-# Add suitesparse support
-if [ -f "/usr/include/SuiteSparse_config.h" ]; then
- CONFOPTS="${CONFOPTS} --with-suitesparse=1"
-fi
-
-# Add metis support
-if [ -f "/usr/include/metis.h" ]; then
- CONFOPTS="${CONFOPTS} --with-metis=1"
- # Add parmetis support
- if [ -f "/usr/include/parmetis.h" ]; then
- CONFOPTS="${CONFOPTS} --with-parmetis=1"
- fi
-fi
-
-# Add scotch support
-SCOTCH_DIR="/usr/include/scotch"
-if [ -d "${SCOTCH_DIR}" ]; then
- SCOTCH_LIBS="libesmumps.so,libptscotch.so,libptscotcherr.so,libscotch.…
- # Include bzip2 if scotch was build with bzip2 support
- if [ -f /usr/include/bzlib.h ];then
- SCOTCH_LIBS="${SCOTCH_LIBS},libbz2.so"
- fi
- SCOTCH_LIBS="[${SCOTCH_LIBS}]"
- CONFOPTS="${CONFOPTS} --with-ptscotch=1 --with-ptscotch-lib=${SCOTCH_L…
-fi
-
-# Add superlu support
-SUPERLU_DIR="/usr/include/superlu"
-if [ -d "${SUPERLU_DIR}" ]; then
- CONFOPTS="${CONFOPTS} --with-superlu=1 --with-superlu-lib=-lsuperlu --…
-fi
-
-# Incompatible with complex
-# # Add sundials support
-# SUNDIALS_DIR="/usr/include/sundials/"
-# if [ -d "${SUNDIALS_DIR}" ]; then
-# CONFOPTS="${CONFOPTS} --with-sundials=1 --with-sundials-include=${SU…
-# fi
-
-# Add openblas support
-if [ -f "/usr/lib/libblas.so" ]; then
- CONFOPTS="${CONFOPTS} --with-openblas=1"
-fi
-
-# Add OpenCL support
-OPENCL_DIR="/usr/include/CL/"
-if [ -f "${OPENCL_DIR}/cl.h" ]; then
- CONFOPTS="${CONFOPTS} --with-opencl=1"
-else
- CONFOPTS="${CONFOPTS} --with-opencl=0"
-fi
-
-# Add eigen support
-EIGEN_DIR="/usr/include/eigen3"
-if [ -d "${EIGEN_DIR}" ]; then
- CONFOPTS="${CONFOPTS} --with-eigen=1 --with-eigen-include=${EIGEN_DIR}"
-fi
-
-# Add OpenMP support
-if [ -f "/usr/lib/libomp.so" ]; then
- CONFOPTS="${CONFOPTS} --with-openmp=1"
-fi
-
-# Add hwloc support
-if [ -f "/usr/lib/libhwloc.so" ]; then
- CONFOPTS="${CONFOPTS} --with-hwloc=1 --with-hwloc-pkg-config=/usr/lib/…
-fi
-
-# Add CGNS support
-if [ -f "/usr/lib/libcgns.so" ]; then
- CONFOPTS="${CONFOPTS} --with-cgns=1"
-fi
-
-# Add PNG support
-if [ -f "/usr/lib/libpng.so" ]; then
- CONFOPTS="${CONFOPTS} --with-png=1 --with-png-pkg-config=/usr/lib/pkgc…
-fi
-
-# Add MED support
-if [ -f "/usr/lib/libmed.so" ]; then
- CONFOPTS="${CONFOPTS} --with-med=1"
-fi
-
-# # Add pastix support
-# PASTIX_CONF=$(which pastix-conf)
-# if [ -f "${PASTIX_CONF}" ]; then
-# PASTIX_DIR="$($PASTIX_CONF --incs | sed 's/-I//')"
-# if [ ! -d ${PASTIX_DIR} ]; then
-# PASTIX_DIR="[]"
-# fi
-# #PASTIX_LIBS="$($PASTIX_CONF --libs)"
-# PASTIX_LIBS="[libpastix.a,librt.so,libhwloc.so,libpthread.a]"
-# CONFOPTS="${CONFOPTS} --with-pastix=1 --with-pastix-lib=${PASTIX_LIB…
-# fi
-
-# Add trilinos support
-if [ "${TRILINOS_DIR}" ]; then
- CONFOPTS="${CONFOPTS} --with-ml-dir=${TRILINOS_DIR}"
- # Add boost support (may be useful for trilinos)
- CONFOPTS="${CONFOPTS} --with-boost=1"
-fi
-
-echo "${CONFOPTS}"
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.