Introduction
Introduction Statistics Contact Development Disclaimer Help
tInitial commit - petsc-git-PKGBUILD - build template for non-complex PETSC wit…
git clone git://src.adamsgaard.dk/petsc-git-PKGBUILD
Log
Files
Refs
---
commit d5b93df3eee209906e2a6ed1bc7cce1187af1ca9
Author: Lucas Heitzmann Gabrielli <[email protected]>
Date: Tue, 5 Feb 2019 12:41:18 -0200
Initial commit
Diffstat:
A .SRCINFO | 27 +++++++++++++++++++++++++++
A PKGBUILD | 119 +++++++++++++++++++++++++++++…
A patch.diff | 13 +++++++++++++
A petsc.install | 9 +++++++++
4 files changed, 168 insertions(+), 0 deletions(-)
---
diff --git a/.SRCINFO b/.SRCINFO
t@@ -0,0 +1,27 @@
+pkgbase = petsc-git
+ pkgdesc = Portable, extensible toolkit for scientific computation
+ pkgver = 20190205
+ pkgrel = 1
+ url = https://www.mcs.anl.gov/petsc/
+ install = petsc.install
+ arch = i686
+ arch = x86_64
+ license = BSD
+ makedepends = gcc
+ makedepends = gcc-fortran
+ makedepends = cmake
+ depends = python2
+ depends = openmpi
+ depends = boost
+ depends = lapack
+ depends = fftw
+ depends = hdf5
+ provides = petsc
+ conflicts = petsc
+ source = petsc::git+https://bitbucket.org/petsc/petsc#branch=maint
+ source = patch.diff
+ sha256sums = SKIP
+ sha256sums = fdf016437dd94f33316e734e35858476aeea1ca0f3ab4d0ee36029b01…
+
+pkgname = petsc-git
+
diff --git a/PKGBUILD b/PKGBUILD
t@@ -0,0 +1,119 @@
+# Maintainer: Lucas H. Gabrielli <heitzmann at gmail dot com>
+
+pkgname=petsc-git
+pkgver=20190205
+pkgrel=1
+_config=linux-c-opt
+pkgdesc="Portable, extensible toolkit for scientific computation"
+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')
+install=petsc.install
+source=(petsc::git+https://bitbucket.org/petsc/petsc#branch=maint
+ patch.diff)
+sha256sums=('SKIP'
+ 'fdf016437dd94f33316e734e35858476aeea1ca0f3ab4d0ee36029b016498de7')
+
+_petsc_arch="arch-${_config}"
+
+
+pkgver() {
+ cd petsc
+ git log --format="%cd" --date=short -1 | sed 's/-//g'
+}
+
+
+prepare() {
+ # force using python2
+ MATCH='\(/usr/bin/env\|/usr/bin/\)python[[:digit:].]*'
+ while IFS= read file; do
+ sed -i "s#$MATCH#\\1python2#" "$file"
+ done < <( find ${srcdir} -name "*" -type f -exec grep -le "$MATCH" \{\} + )
+
+ cd "${srcdir}/petsc"
+ patch -p1 < ../patch.diff
+}
+
+
+build() {
+ cd petsc
+
+ CONFOPTS='--with-shared-libraries=1 --COPTFLAGS=-O3 --CXXOPTFLAGS=-O3 --with…
+
+ # 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"
+
+ for external_pkg in amd eigen hypre metis mumps parmetis party pastix ptscot…
+ do
+ CONFOPTS="${CONFOPTS} --download-${external_pkg}=1"
+ done
+
+ export PETSC_DIR="${srcdir}/petsc"
+ export PETSC_ARCH="${_petsc_arch}"
+
+ python2 ./configure LDFLAGS="$LDFLAGS" --prefix=/opt/petsc/${_config} ${CONF…
+
+ make all
+}
+
+
+package() {
+ cd petsc
+
+ _build_dir="${srcdir}/petsc"
+ _install_dir=/opt/petsc/${_config}
+
+ export PETSC_DIR=${_build_dir}
+ export PETSC_ARCH="${_petsc_arch}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # documentation
+ # Note: the hyperlinks between documentation, tutorials and examples are
+ # not perfect yet
+ #mkdir -p ${pkgdir}/usr/share/doc/petsc/
+ #cp -r ${_build_dir}/docs ${pkgdir}/usr/share/doc/petsc/
+
+ # src for tutorials
+ #find ./src -path '*examples*' -type f -exec \
+ # install -Dm 644 "{}" "${pkgdir}/usr/share/doc/petsc/{}" \;
+
+ # html versions of header files
+ #mkdir -p ${pkgdir}/usr/share/doc/petsc/include
+ #cp -r ${_build_dir}/include/*.html ${pkgdir}/usr/share/doc/petsc/include/
+
+ # install licence (even though there is no such word as licenses)
+ install -Dm 644 ${_build_dir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname…
+
+ mkdir -p "${pkgdir}/etc/profile.d"
+ echo "export PETSC_DIR=${_install_dir}" > "${pkgdir}/etc/profile.d/petsc.sh"
+ chmod +x "${pkgdir}/etc/profile.d/petsc.sh"
+
+ # show where the shared libraries are
+ install -dm 755 "${pkgdir}/etc/ld.so.conf.d/"
+ echo "${_install_dir}/lib" > "${pkgdir}/etc/ld.so.conf.d/petsc.conf"
+
+ sed -i "s#-L${_build_dir}/${_petsc_arch}/lib ##" "${pkgdir}${_install_…
+ sed -i \
+ -e "s#prefix=.*#prefix=${_install_dir}#" \
+ -e "s#libdir=.*#libdir=\${prefix}/lib#" \
+ -e "s#includedir=.*#includedir=\${prefix}/include#" \
+ "${pkgdir}${_install_dir}/lib/pkgconfig/superlu.pc"
+ sed -i \
+ -e "s#prefix=.*#prefix=${_install_dir}#" \
+ -e "s#libdir=.*#libdir=\${prefix}/lib#" \
+ -e "s#includedir=.*#includedir=\${prefix}/include#" \
+ "${pkgdir}${_install_dir}/lib/pkgconfig/superlu_dist.pc"
+ sed -i \
+ -e "s#prefix=.*#prefix=${_install_dir};#" \
+ -e "s#libdir=.*#libdir=\${prefix}/lib;#" \
+ "${pkgdir}${_install_dir}/lib/petsc/bin/sundials-config"
+
+ # install pkgconfig settings
+ #install -Dm 644 "${_build_dir}/${_petsc_arch}/lib/pkgconfig/PETSc.pc" "${pk…
+}
diff --git a/patch.diff b/patch.diff
t@@ -0,0 +1,13 @@
+diff --git a/config/BuildSystem/config/package.py b/config/BuildSystem/config/…
+index d7777d623b..9dfcf66cee 100644
+--- a/config/BuildSystem/config/package.py
++++ b/config/BuildSystem/config/package.py
+@@ -60,7 +60,7 @@ class Package(config.base.Configure):
+ self.excludedDirs = [] # list of directory names that could b…
+ self.downloadonWindows = 0 # 1 means the --download-package works o…
+ self.requirescxx11 = 0
+- self.publicInstall = 1 # Installs the package in the --prefix d…
++ self.publicInstall = 0 # Installs the package in the --prefix d…
+ # during the configuration/installation …
+ self.parallelMake = 1 # 1 indicates the package supports make …
+
diff --git a/petsc.install b/petsc.install
t@@ -0,0 +1,9 @@
+post_install() {
+source /etc/profile.d/petsc.sh
+}
+
+post_upgrade() {
+post_install
+}
+
+# vim:set ts=2 sw=2 et:
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.