Introduction
Introduction Statistics Contact Development Disclaimer Help
tfix LAPACK_SO typo, use sh (POSIX) syntax--(thanks Anders Damsgaard); function…
git clone git://src.adamsgaard.dk/petsc-git-PKGBUILD
Log
Files
Refs
---
commit 3923f5328d1e9c3782719b8b5de2b301dbe9d2c9
parent be7082fe0cede6fb19cb5079e156144a7c3954ce
Author: eDgar <eDgar_|at|_openmail.cc>
Date: Thu, 23 Sep 2021 10:01:48 -0500
fix LAPACK_SO typo, use sh (POSIX) syntax--(thanks Anders Damsgaard); functions…
Diffstat:
M .SRCINFO | 2 +-
M PKGBUILD | 2 +-
M test_optdepends.sh | 247 ++++++++++++++++-------------…
3 files changed, 131 insertions(+), 120 deletions(-)
---
diff --git a/.SRCINFO b/.SRCINFO
t@@ -30,7 +30,7 @@ pkgbase = petsc-git
source = test_optdepends.sh
sha512sums = SKIP
sha512sums = b6a1d48aab1c2639a4c1cbd8b313ace253f1c36eedaa3de3508ffbd60…
- sha512sums = 1ca6bd5ea78af63d29fc70c3a4e6ac34abddd8d8cf3a08b4b27678234…
+ sha512sums = 26145ebce4c3c2a418488e1412579ea56744e9da07f0f6ebc9e457a14…
pkgname = petsc-git
optdepends = boost: Free peer-reviewed portable C++ source libraries
diff --git a/PKGBUILD b/PKGBUILD
t@@ -22,7 +22,7 @@ source=(git+${url}.git#branch=release
test_optdepends.sh)
sha512sums=('SKIP'
'b6a1d48aab1c2639a4c1cbd8b313ace253f1c36eedaa3de3508ffbd6060e1def9…
- '1ca6bd5ea78af63d29fc70c3a4e6ac34abddd8d8cf3a08b4b2767823443f04471…
+ '26145ebce4c3c2a418488e1412579ea56744e9da07f0f6ebc9e457a14ca8679d2…
_config=linux-c-opt
_install_dir="/usr"
diff --git a/test_optdepends.sh b/test_optdepends.sh
t@@ -1,143 +1,147 @@
-#!/bin/bash
+#!/bin/sh
# Test if external packages for PETSC are installed
-# CONFOPTS=""
-
-# # External downloads
-# for external_pkg in hypre fblaslapack metis parmetis superlu_dist mumps scal…
-# CONFOPTS+=" --download-${external_pkg}=1"
-# done
-
-type mpicc >/dev/null && CONFOPTS+=" --with-cc=mpicc"
-type mpicxx >/dev/null && CONFOPTS+=" --with-cxx=mpicxx"
-type mpifort >/dev/null && CONFOPTS+=" --with-fc=mpifort"
+# Find a shared object (library; .so extension)
+# example: find_so libboost_mpi
+find_so () {
+ whereis -b "$1" | cut -d' ' -f2
+}
+
+# Find directory where a pkg-config file is
+# example: find_pc glut
+find_pc () {
+ $(dirname "$(pkgconf --path "$1")")
+}
+
+type mpicc >/dev/null && \
+ CONFOPTS="${CONFOPTS} --with-cc=mpicc"
+type mpicxx >/dev/null && \
+ CONFOPTS="${CONFOPTS} --with-cxx=mpicxx"
+type mpifort >/dev/null && \
+ CONFOPTS="${CONFOPTS} --with-fc=mpifort"
# BOOST: Free peer-reviewed portable C++ source libraries
-if [ -f "$(whereis -b libboost_mpi.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-boost=1"
+if [ -f "$(find_so libboost_mpi.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-boost=1"
fi;
# CGNS: Recording and recovering computer data
-if [ -f "$(whereis -b libcgns.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-cgns=1"
+if [ -f "$(find_so libcgns.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-cgns=1"
fi
-# eigen: Lightweight C++ template library for vector and matrix math
+# eigen: Lightweight C++ template library for vector and
+# matrix math
EIGEN_DIR="$(pkgconf --cflags-only-I eigen3)"
EIGEN_DIR="${EIGEN_DIR##-I}"
if [ -d "${EIGEN_DIR}" ]; then
- CONFOPTS+=" --with-eigen=1 --with-eigen-include=${EIGEN_DIR}"
+ CONFOPTS="${CONFOPTS} --with-eigen=1"
+ CONFOPTS="${CONFOPTS} --with-eigen-include=${EIGEN_DIR}"
fi
# fftw: Fast-Fourier Transform
-if [ -f "$(whereis -b libfftw3_mpi.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-fftw=1"
+if [ -f "$(find_so libfftw3_mpi.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-fftw=1"
fi
# GDB: GNU debugger
-if [ -f "$(whereis -b gdb | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-debugger=gdb"
+if [ -f "$(find_so gdb)" ]; then
+ CONFOPTS="${CONFOPTS} --with-debugger=gdb"
fi
# # GLUT (requires OpenGL)
-# if [ -f "$(whereis -b libglut.so | cut -d' ' -f2)" ]; then
-# CONFOPTS+=" --with-glut=1"
-# CONFOPTS+=" --with-glut-pkg-config="
-# CONFOPTS+="$(dirname $(pkgconf --path glut))"
+# if [ -f "$(find_so libglut.so)" ]; then
+# CONFOPTS="${CONFOPTS} --with-glut=1"
+# CONFOPTS="${CONFOPTS} --with-glut-pkg-config="
+# CONFOPTS="${CONFOPTS} $(find_pc glut)"
# fi
# HDF5: large files
if [[ "$(h5stat -V)" ]]; then
- CONFOPTS+=" --with-hdf5=1"
+ CONFOPTS="${CONFOPTS} --with-hdf5=1"
fi
# hwloc: abstraction of hierarchical architectures
-if [ -f "$(whereis -b libhwloc.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-hwloc=1"
- CONFOPTS+=" --with-hwloc-pkg-config="
- CONFOPTS+="$(dirname $(pkgconf --path hwloc))"
+if [ -f "$(find_so libhwloc.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-hwloc=1"
+ CONFOPTS="${CONFOPTS} --with-hwloc-pkg-config="
+ CONFOPTS="${CONFOPTS} $(find_pc hwloc)"
fi
-# Hypre: Large and sparse linear with massive parallel computing
-if [ -f "$(whereis -b libHYPRE.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-hypre=1"
- CONFOPTS+=" --with-hypre-lib=[/usr/lib/libHYPRE.so]"
- CONFOPTS+=" --with-hypre-include=/usr/include"
+# Hypre: Large and sparse linear with massive parallel
+# computing
+HYPRE_SO="$(find_so libHYPRE.so)"
+if [ -f "${HYPRE_SO}" ]; then
+ CONFOPTS="${CONFOPTS} --with-hypre=1"
+ CONFOPTS="${CONFOPTS} --with-hypre-lib=${HYPRE_SO}"
+ CONFOPTS="${CONFOPTS} --with-hypre-include=/usr/include"
fi
# MED: Data Modelization and Exchanges (meshes)
-if [ -f "$(whereis -b libmed.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-med=1"
+if [ -f "$(find_so libmed.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-med=1"
fi
# METIS: Automatic meshing partitioning
-if [ -f "$(whereis -b libmetis.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-metis=1"
+if [ -f "$(find_so libmetis.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-metis=1"
# parmetis support
if [ -f "/usr/include/parmetis.h" ]; then
- CONFOPTS+=" --with-parmetis=1"
+ CONFOPTS="${CONFOPTS} --with-parmetis=1"
fi
fi
# # MPI4Py
# if [ -n "$(pacman -Qsq mpi4py)" ]; then
# mpi4py_inc="$(pacman -Ql python-mpi4py | awk '/mpi4py.h$/{print $NF}')"
-# CONFOPTS+=" --with-mpi4py=1"
-# CONFOPTS+=" --with-mpi4py-include="
-# CONFOPTS+="$(dirname $mpi4py_inc)"
-# CONFOPTS+=" --with-mpi4py-lib="
-# CONFOPTS+="$(pacman -Ql python-mpi4py | awk '/.*\.so$/{print $NF}' | tr …
+# CONFOPTS="${CONFOPTS} --with-mpi4py=1"
+# CONFOPTS="${CONFOPTS} --with-mpi4py-include="
+# CONFOPTS="${CONFOPTS} $(dirname "${mpi4py_inc}")"
+# CONFOPTS="${CONFOPTS} --with-mpi4py-lib="
+# CONFOPTS="${CONFOPTS} $(pacman -Ql python-mpi4py | awk '/.*\.so$/{print …
# fi
# MUMPS: Sparse solver library
-if [ -f "$(whereis -b libmumps_common.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-mumps=1"
- # MUMPS_LIBS="[/usr/lib/libcmumps.so,"
- # MUMPS_LIBS+="/usr/lib/libdmumps.so,"
- # MUMPS_LIBS+="/usr/lib/libsmumps.so,"
- # MUMPS_LIBS+="/usr/lib/libzmumps.so,"
- # MUMPS_LIBS+="/usr/lib/libmumps_common.so,"
- # MUMPS_LIBS+="/usr/lib/libpord.so]"
- # CONFOPTS+=" --with-mumps-lib=${MUMPS_LIBS}"
- # CONFOPTS+=" --with-mumps-include=/usr/include"
- # CONFOPTS+=" --with-mumps-dir=/usr/"
+if [ -f "$(find_so libmumps_common.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-mumps=1"
fi
# NetCDF
-if [ -f "$(whereis -b libnetcdf.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-netcdf=1"
- CONFOPTS+=" --with-netcdf-pkg-config="
- CONFOPTS+="$(dirname $(pkgconf --path netcdf))"
+if [ -f "$(find_so libnetcdf.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-netcdf=1"
+ CONFOPTS="${CONFOPTS} --with-netcdf-pkg-config="
+ CONFOPTS="${CONFOPTS} $(find_pc netcdf)"
fi
# PNG
-if [ -f "$(whereis -b libpng.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-png=1"
- CONFOPTS+=" --with-png-pkg-config="
- CONFOPTS+="$(dirname $(pkgconf --path libpng))"
+if [ -f "$(find_so libpng.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-png=1"
+ CONFOPTS="${CONFOPTS} --with-png-pkg-config="
+ CONFOPTS="${CONFOPTS} $(find_pc libpng)"
fi
# PNetCDF
-if [ -f "$(whereis -b libpnetcdf.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-pnetcdf=1"
- CONFOPTS+=" --with-pnetcdf-pkg-config="
- CONFOPTS+="$(dirname $(pkgconf --path pnetcdf))"
+if [ -f "$(find_so libpnetcdf.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-pnetcdf=1"
+ CONFOPTS="${CONFOPTS} --with-pnetcdf-pkg-config="
+ CONFOPTS="${CONFOPTS} $(find_pc pnetcdf)"
fi
# OpenBLAS: Linear algebra libraries
-BLAS_SO="$(whereis -b libblas.so | cut -d' ' -f2)"
-OPENBLAS_SO="$(whereis -b libopenblas.so | cut -d' ' -f2)"
-LAPACK_SO="$(whereis -b liblapack.so | cut -d' ' -f2)"
+BLAS_SO="$(find_so libblas.so)"
+OPENBLAS_SO="$(find_so libopenblas.so)"
+LAPACK_SO="$(find_so liblapack.so)"
if [ -f "${BLAS_SO}" && \-f "${OPENBLAS_SO}" && \
- -f "${LAPACK_SO}"]; then
- CONFOPTS+=" --with-openblas=1"
- CONFOPTS+=" --with-openblas-lib=${OPENBLAS_SO}"
- CONFOPTS+=" --with-openblas-include=/usr/include"
+ -f "${LAPACK_SO}" ]; then
+ OPENBLAS_INC="$(pkgconf -keep-system-cflags -cflags openblas)"
+ CONFOPTS="${CONFOPTS} --with-openblas=1"
+ CONFOPTS="${CONFOPTS} --with-openblas-lib=${OPENBLAS_SO}"
+ CONFOPTS="${CONFOPTS} --with-openblas-include=${OPENBLAS_INC}"
# With help from Satish Balay
# @ 3.15.4.33.g0bac13e0fe9 2021-09-21
# nm -AoD /usr/lib64/libopenblas.so | grep dgetrs_
- CONFOPTS+=" --with-blaslapack-lib=${LAPACK_SO},${BLAS_SO}"
+ CONFOPTS="${CONFOPTS} --with-blaslapack-lib=${LAPACK_SO},${BLAS_SO}"
fi
# OpenCL: GPU computing
t@@ -145,9 +149,9 @@ fi
# (from opencl-headers package; how to do this in a consistent way?)
OPENCL_INC="/usr/include/CL/cl.h"
# Check library (find libOpenCL.so)
-OPENCL_SO="$(whereis -b libOpenCL.so | cut -d' ' -f2)"
+OPENCL_SO="$(find_so libOpenCL.so)"
if [ -f "${OPENCL_SO}" ] && [ -f "${OPENCL_INC}" ]; then
- CONFOPTS+=" --with-opencl=1"
+ CONFOPTS="${CONFOPTS} --with-opencl=1"
fi
# # OpenGL (mesa)
t@@ -160,37 +164,37 @@ fi
# #
# # OPENGL_opengl_LIBRARY: /lib64/libOpenGL.so
# # OPENGL_glx_LIBRARY: /lib64/libGLX.so
-# OPENGLIB="$(whereis -b libOpenGL.so | cut -d' ' -f2)"
+# OPENGLIB="$(find_so libOpenGL.so)"
# if [ -f "${OPENGLIB}" ]; then
-# # OPENGLIB+=",$(whereis -b libGL | cut -d' ' -f2),"
-# # OPENGLIB+=",$(whereis -b libGLX | cut -d' ' -f2)"
-# # OPENGLIB+=",$(whereis -b libGLX | cut -d' ' -f2)"
+# # OPENGLIB+=",$(find_so libGL),"
+# # OPENGLIB+=",$(find_so libGLX)"
+# # OPENGLIB+=",$(find_so libGLX)"
# # # OPENGLIB+="$(pacman -Ql mesa | awk '/\.so$/{print $NF}' | tr ' \n' '…
-# # CONFOPTS+=" --with-opengl=1"
-# # CONFOPTS+=" --with-opengl-lib=[${OPENGLIB}]"
-# # CONFOPTS+=" --with-opengl-include=[/usr/include/GL/glew.h]"
-# CONFOPTS+=" --with-opengl=1"
-# CONFOPTS+=" --with-opengl-pkg-config="
-# CONFOPTS+="$(dirname $(pkgconf --path opengl))"
-# # CONFOPTS+="$(pacman -Ql mesa | awk '/\/include\/[^/]*\/$/{print $NF}' …
+# # CONFOPTS="${CONFOPTS} --with-opengl=1"
+# # CONFOPTS="${CONFOPTS} --with-opengl-lib=[${OPENGLIB}]"
+# # CONFOPTS="${CONFOPTS} --with-opengl-include=[/usr/include/GL/glew.h]"
+# CONFOPTS="${CONFOPTS} --with-opengl=1"
+# CONFOPTS="${CONFOPTS} --with-opengl-pkg-config="
+# CONFOPTS="${CONFOPTS} $(dirname $(pkgconf --path opengl))"
+# # CONFOPTS="${CONFOPTS} $(pacman -Ql mesa | awk '/\/include\/[^/]*\/$/{p…
# fi
# OpenMP: 64 bits blas and lapack, multi-threaded
-if [ -f "$(whereis -b libomp.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-openmp=1"
+if [ -f "$(find_so libomp.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-openmp=1"
fi
# # OpenMPI (dependency; should be found by pacman)
# MPILIBDIR=$(dirname "$(pacman -Qlq openmpi | grep 'libmpi.so$')")
# MPIINC="$(pacman -Qlq openmpi | grep 'mpi.h$')"
# if [ -d "${MPILIBDIR}" ]; then
-# CONFOPTS+=" --with-mpi=1"
-# CONFOPTS+=" --with-mpi-dir=/usr/"
+# CONFOPTS="${CONFOPTS} --with-mpi=1"
+# CONFOPTS="${CONFOPTS} --with-mpi-dir=/usr/"
# fi
# Scalapack: Parallel memory linear algebra
-if [ -f "$(whereis -b libscalapack.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-scalapack=1"
+if [ -f "$(find_so libscalapack.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-scalapack=1"
fi
# Scotch: Partitioning with sparse matrices
t@@ -198,70 +202,75 @@ fi
SCOTCH_DIR="/usr/include/scotch"
if [ -d "${SCOTCH_DIR}" ]; then
# SCOTCH_LIBS="$(ldconfig -p | awk '/scotch/{printf("'"${SCOTCH_DIR}"'…
- SCOTCH_LIBS="libesmumps.so,libptscotch.so,libptscotcherr.so,libscotch.…
+ SCOTCH_LIBS="libesmumps.so,libptscotch.so"
+ SCOTCH_LIBS="${SCOTCH_LIBS},libptscotcherr.so,libscotch.so"
+ SCOTCH_LIBS="${SCOTCH_LIBS},libscotcherr.so"
# Include bzip2 if scotch was built with bzip2 support
- if [ -f "$(whereis -b libbz2.so | cut -d' ' -f2)" ]; then
- SCOTCH_LIBS+=",${SCOTCH_DIR}/libbz2.so"
+ if [ -f "$(find_so libbz2.so)" ]; then
+ SCOTCH_LIBS="${SCOTCH_LIBS},${SCOTCH_DIR}/libbz2.so"
fi
# Add [], remove trailing ,
SCOTCH_LIBS="[${SCOTCH_LIBS}]"
- CONFOPTS+=" --with-ptscotch=1"
- CONFOPTS+=" --with-ptscotch-lib=${SCOTCH_LIBS}"
- CONFOPTS+=" --with-ptscotch-include=${SCOTCH_DIR}"
+ CONFOPTS="${CONFOPTS} --with-ptscotch=1"
+ CONFOPTS="${CONFOPTS} --with-ptscotch-lib=${SCOTCH_LIBS}"
+ CONFOPTS="${CONFOPTS} --with-ptscotch-include=${SCOTCH_DIR}"
fi
# SuiteSparse: Sparse matrix library
-if [ -f "$(whereis -b libsuitesparseconfig.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-suitesparse=1"
+if [ -f "$(find_so libsuitesparseconfig.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-suitesparse=1"
fi
# SuperLU: Subroutines for sparsse linear systems
# TODO: programatic way
SUPERLU_DIR="/usr/include/superlu"
if [ -d "${SUPERLU_DIR}" ]; then
- CONFOPTS+=" --with-superlu=1 --with-superlu-lib=-lsuperlu --with-super…
+ CONFOPTS="${CONFOPTS} --with-superlu=1"
+ CONFOPTS="${CONFOPTS} --with-superlu-lib=-lsuperlu"
+ CONFOPTS="${CONFOPTS} --with-superlu-include=${SUPERLU_DIR}"
fi
# YAML: configuration files
# Check library (find libyaml.so)
-OPENCL_SO="$(whereis -b libyaml.so | cut -d' ' -f2)"
+OPENCL_SO="$(find_so libyaml.so)"
if [ -f "${OPENCL_SO}" ]; then
- CONFOPTS+=" --with-yaml=1"
+ CONFOPTS="${CONFOPTS} --with-yaml=1"
fi
# X: to enable ksp_xmonitor
-LIBX11="$(whereis -b libX11.so | cut -d' ' -f2)"
+LIBX11="$(find_so libX11.so)"
LIBX11_DIR="$(dirname ${LIBX11})"
if [ -f "${LIBX11}" ]; then
LIBX11_INC="--keep-system-cflags --cflags-only-I";
LIBX11_INC="$(pkgconf ${LIBX11_INC} x11)";
- CONFOPTS+=" --with-x-lib=[${LIBX11_DIR}/";
+ CONFOPTS="${CONFOPTS} --with-x-lib=[${LIBX11_DIR}/";
# As per X11.pc, it seems that xcb.so is needed
- CONFOPTS+="libX11-xcb.so,${LIBX11}]"
- CONFOPTS+=" --with-x-include=${LIBX11_INC//-I/}"
+ CONFOPTS="${CONFOPTS}libX11-xcb.so,${LIBX11}]"
+ CONFOPTS="${CONFOPTS} --with-x-include=${LIBX11_INC//-I/}"
fi
# ZLIB
-if [ -f "$(whereis -b libzlib.so | cut -d' ' -f2)" ]; then
- CONFOPTS+=" --with-zlib=1"
- CONFOPTS+=" --with-zlib-pkg-config="
- CONFOPTS+="$(dirname $(pkgconf --path zlib))"
+if [ -f "$(find_so libzlib.so)" ]; then
+ CONFOPTS="${CONFOPTS} --with-zlib=1"
+ CONFOPTS="${CONFOPTS} --with-zlib-pkg-config="
+ CONFOPTS="${CONFOPTS} $(find_pc zlib)"
fi
# # trilinos support
#
# if [ "${TRILINOS_DIR}" ]; then
-# CONFOPTS+=" --with-ml-dir=${TRILINOS_DIR}"
+# CONFOPTS="${CONFOPTS} --with-ml-dir=${TRILINOS_DIR}"
# # boost support (may be useful for trilinos)
-# CONFOPTS+=" --with-boost=1"
+# CONFOPTS="${CONFOPTS} --with-boost=1"
# fi
# Incompatible with complex
# # sundials support
# SUNDIALS_DIR="/usr/include/sundials/"
# if [ -d "${SUNDIALS_DIR}" ]; then
-# CONFOPTS+=" --with-sundials=1 --with-sundials-include=${SUNDIALS_DIR…
+# CONFOPTS="${CONFOPTS} --with-sundials=1"
+# CONFOPTS="${CONFOPTS} --with-sundials-include=${SUNDIALS_DIR}"
# fi
# # pastix support (non-free)
t@@ -273,7 +282,9 @@ fi
# fi
# #PASTIX_LIBS="$($PASTIX_CONF --libs)"
# PASTIX_LIBS="[libpastix.a,librt.so,libhwloc.so,libpthread.a]"
-# CONFOPTS+=" --with-pastix=1 --with-pastix-lib=${PASTIX_LIBS} --with-…
+# CONFOPTS="${CONFOPTS} --with-pastix=1"
+# CONFOPTS="${CONFOPTS} --with-pastix-lib=${PASTIX_LIBS}"
+# CONFOPTS="${CONFOPTS} --with-pastix-include=${PASTIX_DIR}"
# 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.