mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-10 15:45:15 -04:00
sys-cluster/extrae: rebuild when sionlib changes
Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
@@ -44,7 +44,7 @@ CDEPEND="
|
||||
elf? ( virtual/libelf )
|
||||
inotify? ( dev-libs/libevent )
|
||||
opencl? ( dev-util/opencl-headers )
|
||||
sionlib? ( sys-cluster/sionlib )
|
||||
sionlib? ( sys-cluster/sionlib:= )
|
||||
"
|
||||
# aspectj? ( >=dev-java/aspectj-1.9.6 )
|
||||
DEPEND="
|
||||
|
||||
199
sys-cluster/extrae/extrae-3.8.3-r3.ebuild
Normal file
199
sys-cluster/extrae/extrae-3.8.3-r3.ebuild
Normal file
@@ -0,0 +1,199 @@
|
||||
# Copyright 2019-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( pypy3 python3_{7,8,9} )
|
||||
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="boost clustering doc dwarf elf fft heterogeneous inotify +instrument-dynamic-memory +instrument-io +instrument-syscall merge-in-trace nanos opencl openmp +parallel-merge pebs-sampling +posix-clock pthread sampling +single-mpi-lib sionlib smpss +xml"
|
||||
#aspectj and aspectj-weaver need to both be enabled at the same time
|
||||
#current dev-java/aspectj package only provides aspectj.jar
|
||||
#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
|
||||
#aspectj-weaver needs bar/aspectjweaver.jar
|
||||
#TODO: find out who is pulling in libpfm
|
||||
#TODO: find out which FFT library is used
|
||||
#TODO: remove some useflags (boost fft elf dwarf)
|
||||
#TODO: pmapi online dyninst cuda spectral cupti openshmem gm mx synapse memkind aspectj
|
||||
#TODO: support llvm libunwind, llvm rt, elftoolchain
|
||||
|
||||
CDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
app-arch/xz-utils
|
||||
dev-libs/icu
|
||||
dev-libs/libpfm
|
||||
sys-libs/libunwind
|
||||
dev-libs/libxml2
|
||||
dev-libs/papi
|
||||
sys-apps/hwloc
|
||||
sys-libs/glibc
|
||||
sys-libs/zlib
|
||||
virtual/mpi
|
||||
|
||||
|| ( sys-devel/binutils:* sys-libs/binutils-libs )
|
||||
|
||||
boost? ( dev-libs/boost:= )
|
||||
clustering? ( sys-cluster/clusteringsuite )
|
||||
dwarf? ( dev-libs/libdwarf )
|
||||
elf? ( virtual/libelf )
|
||||
inotify? ( dev-libs/libevent )
|
||||
opencl? ( dev-util/opencl-headers )
|
||||
sionlib? ( sys-cluster/sionlib:= )
|
||||
"
|
||||
# aspectj? ( >=dev-java/aspectj-1.9.6 )
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
java? ( virtual/jdk:1.8 )
|
||||
"
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
java? ( virtual/jre:1.8 )
|
||||
virtual/opencl
|
||||
"
|
||||
BDEPEND="
|
||||
doc? ( dev-python/sphinx )
|
||||
"
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
java? ( pthread )
|
||||
"
|
||||
# cupti? ( cuda )
|
||||
# dyninst? ( boost dwarf elf )
|
||||
# online? ( synapse )
|
||||
# aspectj? ( java )
|
||||
# spectral? ( fft )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export VARTEXFONTS="${T}/fonts"
|
||||
|
||||
local myconf=(
|
||||
--datadir="${T}"
|
||||
--datarootdir="${T}"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)/extrae/lib"
|
||||
|
||||
--disable-mic
|
||||
--disable-online
|
||||
--disable-peruse
|
||||
--disable-pmapi
|
||||
--disable-static
|
||||
|
||||
--enable-shared
|
||||
|
||||
--with-librt="${EPREFIX}/usr"
|
||||
--with-mpi="${EPREFIX}/usr"
|
||||
--with-papi="${EPREFIX}/usr"
|
||||
--with-pic
|
||||
--with-unwind="${EPREFIX}/usr"
|
||||
|
||||
--without-dyninst
|
||||
--without-cupti
|
||||
--without-memkind
|
||||
--without-synapse
|
||||
--without-spectral
|
||||
--without-openshmem
|
||||
--without-gm
|
||||
--without-mx
|
||||
|
||||
$(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 openmp)
|
||||
$(use_enable sampling)
|
||||
$(use_enable parallel-merge)
|
||||
$(use_enable pebs-sampling)
|
||||
$(use_enable posix-clock)
|
||||
$(use_enable pthread)
|
||||
$(use_enable single-mpi-lib)
|
||||
$(use_enable smpss)
|
||||
$(use_enable xml)
|
||||
)
|
||||
#--with-pmpi-hook (Choose method to call PMPI (dlsym or pmpi))
|
||||
|
||||
# if use aspectj; then
|
||||
# myconf+=( "--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )
|
||||
# myconf+=( "--with-java-aspectj-weaver=${EPREFIX}/usr" )
|
||||
# else
|
||||
myconf+=( "--without-java-aspectj-weaver" )
|
||||
myconf+=( "--without-java-aspectj" )
|
||||
# fi
|
||||
if use boost; then
|
||||
myconf+=( "--with-boost=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-boost" )
|
||||
fi
|
||||
if use clustering; then
|
||||
myconf+=( "--with-clustering=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-clustering" )
|
||||
fi
|
||||
if use dwarf; then
|
||||
myconf+=( "--with-dwarf=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-dwarf" )
|
||||
fi
|
||||
if use elf; then
|
||||
myconf+=( "--with-elf=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-elf" )
|
||||
fi
|
||||
if use fft; then
|
||||
myconf+=( "--with-fft=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-fft" )
|
||||
fi
|
||||
if use java; then
|
||||
myconf+=( "--with-java-jdk=$(java-config -O)" )
|
||||
else
|
||||
myconf+=( "--without-java-jdk" )
|
||||
fi
|
||||
if use opencl; then
|
||||
myconf+=( "--with-opencl=${EPREFIX}/usr" )
|
||||
else
|
||||
myconf+=( "--without-opencl" )
|
||||
fi
|
||||
|
||||
use sionlib && myconf+=( "--with-sionlib=${EPREFIX}/usr" )
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
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"
|
||||
|
||||
find "${ED}" -name '*.a' -delete || die
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
||||
@@ -18,9 +18,10 @@ process). Extrae generates trace files that can be later visualized with <pkg>sy
|
||||
<use>
|
||||
<!--<flag name="aspectj">Enable support for tracing Java through <pkg>dev-java/aspectj</pkg> (experimental)</flag>-->
|
||||
<flag name="boost">Search for boost</flag>
|
||||
<flag name="doc">Generates the documentation of this instrumentation package</flag>
|
||||
<flag name="clustering">Enable <pkg>sys-cluster/clusteringsuite</pkg> support</flag>
|
||||
<!--<flag name="cuda">Enable support for tracing CUDA calls on nVidia hardware and needs to point to the CUDA SDK installation path. This instrumentation is only valid in binaries that use the shared version of the CUDA library.</flag>-->
|
||||
<!--<flag name="cupti">CUPTI is used to instrument CUDA calls</flag>-->
|
||||
<flag name="doc">Generates the documentation of this instrumentation package</flag>
|
||||
<flag name="dwarf">Build with <pkg>dev-libs/libdwarf</pkg></flag>
|
||||
<!--<flag name="dyninst">Build with dyninst</flag>-->
|
||||
<flag name="elf">Build with <pkg>virtual/libelf</pkg></flag>
|
||||
|
||||
Reference in New Issue
Block a user