commit:     e1499a574732f641844ec73596f429991fffbfc4
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Thu Jun  2 15:54:04 2022 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:55:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e1499a57

sys-cluster/extrae: add 4.0.1

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-cluster/extrae/Manifest            |   1 +
 sys-cluster/extrae/extrae-4.0.1.ebuild | 234 +++++++++++++++++++++++++++++++++
 2 files changed, 235 insertions(+)

diff --git a/sys-cluster/extrae/Manifest b/sys-cluster/extrae/Manifest
index 17608e9bc..1f6352936 100644
--- a/sys-cluster/extrae/Manifest
+++ b/sys-cluster/extrae/Manifest
@@ -1 +1,2 @@
 DIST extrae-3.8.3.tar.gz 1056317 BLAKE2B 
9efe7011ba9474de66deb8c679f10eff37cc3d5699b42cb1b076ed43b539bbc15ecc613b3f17b03df9e93a219ebcafd3e1d56229db9c0d4e7a0a56d5c3edd591
 SHA512 
3fba66447790e0a1c71c0e5a61f67ad966cdd4e19742799ecc50124a916ef599fff747027ccc803584f0ab2d1d76c29ded7072a70dd0aed5a3be7ff6ecbb8709
+DIST extrae-4.0.1.tar.gz 1082141 BLAKE2B 
a049f744aa1d2f6770e620939c5d7981098e86908843f0b9d38d06a4aa9103ed2d551a34301dbf57857316340031d536a814d82a9ab0aab5ab70b063171ff52c
 SHA512 
58cbe06b1eb738dba3c9d38a96ca8a9bf442c492214e086876af25b8d7e01c379b46281f6815763e87e0e69214636f95486d48b1b6ce088b54d24b4d77ff0920

diff --git a/sys-cluster/extrae/extrae-4.0.1.ebuild 
b/sys-cluster/extrae/extrae-4.0.1.ebuild
new file mode 100644
index 000000000..8bcd5ef13
--- /dev/null
+++ b/sys-cluster/extrae/extrae-4.0.1.ebuild
@@ -0,0 +1,234 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( pypy3 python3_{8..11} )
+
+inherit autotools java-pkg-opt-2 python-single-r1
+
+DESCRIPTION="Instrumentation framework to generate execution traces of 
parallel runtimes"
+HOMEPAGE="https://github.com/bsc-performance-tools/extrae";
+SRC_URI="https://github.com/bsc-performance-tools/extrae/archive/${PV}.tar.gz 
-> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE_INSTRUMENT="
+       +instrument_dynamic-memory
+       +instrument_io
+       +instrument_syscall
+"
+IUSE="${IUSE_INSTRUMENT} clustering dlsym doc dyninst heterogeneous inotify 
memkind
+merge-in-trace nanos online opencl openmp openshmem +parallel-merge 
pebs-sampling
+peruse +posix-clock pthread sampling +single-mpi-lib sionlib smpss spectral 
+xml"
+
+#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
+#TODO: cuda cupti gm mx gaspi aspectj
+#TODO: support llvm libunwind, llvm rt, elftoolchain
+
+#      aspectj? ( >=dev-java/aspectj-1.9.6 )
+CDEPEND="
+       ${PYTHON_DEPS}
+       dev-libs/libxml2
+       dev-libs/papi
+       !sys-cluster/openmpi[libompitrace(+)]
+       sys-libs/binutils-libs
+       sys-libs/libunwind
+       sys-libs/zlib
+       virtual/mpi
+
+       clustering? ( sys-cluster/clusteringsuite[treedbscan] )
+       dyninst? (
+               dev-libs/boost:=
+               dev-libs/libdwarf
+               sys-cluster/dyninst
+               virtual/libelf
+       )
+       inotify? ( dev-libs/libevent )
+       memkind? ( dev-libs/memkind )
+       online? ( sys-cluster/synapse )
+       opencl? ( dev-util/opencl-headers )
+       openshmem? ( sys-cluster/SOS )
+       peruse? ( sys-cluster/openmpi[peruse(-)] )
+       sionlib? ( sys-cluster/sionlib:= )
+       spectral? (
+               sci-libs/fftw
+               sys-cluster/spectral
+       )
+"
+DEPEND="
+       ${CDEPEND}
+       java? ( virtual/jdk:1.8 )
+"
+RDEPEND="
+       ${CDEPEND}
+       java? ( virtual/jre:1.8 )
+       virtual/opencl
+"
+BDEPEND="
+       sys-devel/binutils-config
+       doc? (
+               app-text/ghostscript-gpl
+               dev-python/sphinx
+               dev-tex/latexmk
+               dev-texlive/texlive-latexextra
+       )
+       java? ( app-admin/chrpath )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-3.8.3-link-sionlib.patch"
+)
+REQUIRED_USE="
+       ${PYTHON_REQUIRED_USE}
+
+       || ( ${IUSE_INSTRUMENT//+/} )
+
+       java? ( pthread )
+"
+#      aspectj? ( java )
+#      cupti? ( cuda )
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       export VARTEXFONTS="${T}/fonts"
+
+       local myconf=(
+               --disable-mic
+               --disable-pmapi
+               --disable-static
+               --enable-shared
+               --without-cupti
+               --without-gm
+               --without-mx
+
+               --datadir="${T}"
+               --datarootdir="${T}"
+               --with-librt="${EPREFIX}/usr"
+               --with-mpi="${EPREFIX}/usr"
+               --with-papi="${EPREFIX}/usr"
+               --with-unwind="${EPREFIX}/usr"
+
+               $(use_enable doc)
+               $(use_enable heterogeneous)
+               $(use_enable inotify)
+               $(use_enable instrument_dynamic-memory)
+               $(use_enable instrument_io)
+               $(use_enable instrument_syscall)
+               $(use_enable merge-in-trace)
+               $(use_enable nanos)
+               $(use_enable online)
+               $(use_enable openmp)
+               $(use_enable parallel-merge)
+               $(use_enable pebs-sampling)
+               $(use_enable peruse)
+               $(use_enable posix-clock)
+               $(use_enable pthread)
+               $(use_enable sampling)
+               $(use_enable single-mpi-lib)
+               $(use_enable smpss)
+               $(use_enable xml)
+       )
+
+       use dlsym && myconf+=( "--with-pmpi-hook=dlsym" )
+
+#      if use aspectj; then
+#              myconf+=( 
"--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )
+#              myconf+=( 
"--with-java-aspectj-weaver=${EPREFIX}/usr/share/aspectj/lib" )
+#      else
+               myconf+=( "--without-java-aspectj-weaver" )
+               myconf+=( "--without-java-aspectj" )
+#      fi
+       if use clustering; then
+               myconf+=( "--with-clustering=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-clustering" )
+       fi
+       if use dyninst; then
+               myconf+=( "--with-boost=${EPREFIX}/usr" )
+               myconf+=( "--with-dyninst=${EPREFIX}/usr" )
+               myconf+=( 
"--with-dyninst-headers=${EPREFIX}/usr/include/dyninst" )
+               myconf+=( "--with-dwarf=${EPREFIX}/usr" )
+               myconf+=( "--with-elf=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-boost" )
+               myconf+=( "--without-dyninst" )
+               myconf+=( "--without-dwarf" )
+               myconf+=( "--without-elf" )
+       fi
+       if use java; then
+               myconf+=( "--with-java-jdk=$(java-config -O)" )
+       else
+               myconf+=( "--without-java-jdk" )
+       fi
+       if use memkind; then
+               myconf+=( "--with-memkind=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-memkind" )
+       fi
+       if use online; then
+               myconf+=( "--with-synapse=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-synapse" )
+       fi
+       if use opencl; then
+               myconf+=( "--with-opencl=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-opencl" )
+       fi
+       if use openshmem; then
+               myconf+=( "--with-openshmem=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-openshmem" )
+       fi
+       if use sionlib; then
+               myconf+=( "--with-sionlib=${EPREFIX}/usr" )
+               myconf+=( 
"--with-sionlib-headers=${EPREFIX}/usr/include/sionlib" )
+       fi
+       if use spectral; then
+               myconf+=( "--with-fft=${EPREFIX}/usr" )
+               myconf+=( "--with-spectral=${EPREFIX}/usr" )
+       else
+               myconf+=( "--without-fft" )
+               myconf+=( "--without-spectral" )
+       fi
+
+       econf "${myconf[@]}"
+}
+
+src_install() {
+       default
+
+       #TODO: build examples
+
+       mkdir -p "${D}/$(python_get_sitedir)/" || die
+       mv "${ED}/usr/libexec/pyextrae" "${D}/$(python_get_sitedir)/" || die
+       python_optimize "${D}/$(python_get_sitedir)/pyextrae"
+
+       #super-duper workaround
+       mkdir -p "${ED}/usr/share/doc/${PF}" || die
+       mv "${ED}/${T}/example" "${ED}/usr/share/doc/${PF}/examples" || die
+       mv "${ED}/${T}/tests" "${ED}/usr/share/doc/${PF}/" || die
+
+       if use doc ; then
+               mv "${T}/docs"/* "${ED}/usr/share/doc/${PF}/" || die
+               mv "${T}/man" "${ED}/usr/share/" || die
+               docompress -x "/usr/share/doc/${PF}/html"
+       fi
+       docompress -x "/usr/share/doc/${PF}/examples"
+       docompress -x "/usr/share/doc/${PF}/tests"
+
+       if use java; then
+               chrpath -d "${ED}/usr/$(get_libdir)/libextrae-jvmti-agent.so" 
|| die
+               chrpath -d "${ED}/usr/$(get_libdir)/libjavatrace.so" || die
+       fi
+
+       find "${ED}" -name '*.a' -delete || die
+       find "${ED}" -name '*.la' -delete || die
+}

Reply via email to