diff --git a/Compiler/H5root/1/H5root b/Compiler/H5root/1/H5root new file mode 100644 index 0000000..55f34a2 --- /dev/null +++ b/Compiler/H5root/1/H5root @@ -0,0 +1,13 @@ +#!/bin/bash + +CPLUS_INCLUDE_PATH="@PREFIX@/include:@ROOT_PREFIX@/include" + +declare -r progname=$(basename "$0") + +declare -a args=() + +if [[ "${progname}" == "roger" ]]; then + args+=( "--roger" ) +fi + +"@PREFIX@/bin/H5root.bin" "${args[@]}" "$@" diff --git a/Compiler/H5root/1/variants b/Compiler/H5root/1/variants index 7edd57b..aa89c2a 100644 --- a/Compiler/H5root/1/variants +++ b/Compiler/H5root/1/variants @@ -1,3 +1,10 @@ -H5root/1.2.0 stable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.7.4 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 -H5root/1.2.0 stable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.8.3 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 -H5root/1.3.0 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.8.3 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 +H5root/1.2.0 stable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.7.4 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 +H5root/1.2.0 stable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.8.3 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 +H5root/1.3.0 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/4.8.3 hdf5_serial/1.8.12 b:H5hut_serial/1.99.13 root/5.34.19 +H5root/1.3.2rc2 unstable gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.2rc4 unstable gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.2rc4-1 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.2rc5 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.2rc5-1 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.2 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 +H5root/1.3.4 unstable b:autoconf/2.69 b:automake/1.14 b:libtool/2.4.2 gcc/5.4.0 b:hdf5_serial/1.8.18 b:H5hut/2.0.0rc3 root/6.08.02 boost/1.62.0 gsl/2.2.1 diff --git a/Compiler/H5root/build b/Compiler/H5root/build index 85a3164..a837472 100755 --- a/Compiler/H5root/build +++ b/Compiler/H5root/build @@ -1,6 +1,8 @@ #!/usr/bin/env modbuild -pbuild::pre_configure() { +SOURCE_URL="http://amas.web.psi.ch/Downloads/$P/$P-$V.tar.bz2" + +pbuild::post_prep() { ./autogen.sh } @@ -9,8 +11,42 @@ pbuild::configure() { --prefix="${PREFIX}" } -declare JOBS=1 -pbuild::compile_in_sourcetree +pbuild::post_install() { + # Unfortunatelly we need some fancy post-installation. + # Otherwise it wouldn't be possible to load the modules + # for H5root and OPAL at the same time. The problem is + # the JIT compiler of ROOT and the fact, that we need + # a serial HDF5 for H5root but a parallel for OPAL. + # + # Since ROOT's JIT compiler uses the environment variable + # CPLUS_INCLUDE_PATH to search for header files, the + # content of it is cruciale. In other words: it must be + # guaranteed that the header files of the serial compiled + # HDF5 are used by ROOT's JIT compiler. Since we have no + # influence on the order he modules are loaded, we cannot + # guarantee this without checking and - if required - + # changing the search path. + # + # The simplest solution for this problem is to install + # all required header files of HDF5 and H5hut into the + # include directory of the H5root module and to use a + # wrapper script to set the right search path. + + # rename H5root binary, this will be called by a wrapper + # script. + mv "${PREFIX}/bin/H5root" "${PREFIX}/bin/H5root.bin" + + # install wrapper script and set the right paths + local sed_cmd="s:@PREFIX@:${PREFIX}:g;" + sed_cmd+="s:@HDF5_PREFIX@:${HDF5_SERIAL_PREFIX}:g;" + sed_cmd+="s:@ROOT_PREFIX@:${ROOT_PREFIX}:g;" + sed "${sed_cmd}" "${BUILD_BLOCK_DIR}/${V_MAJOR}/H5root" > "${PREFIX}/bin/H5root" + chmod 0755 "${PREFIX}/bin/H5root" + + # install serial HDF5 and H5hut header files + cp -av "${HDF5_SERIAL_INCLUDE_DIR}/"* "${PREFIX}/include/" + cp -av "${H5HUT_INCLUDE_DIR}/"* "${PREFIX}/include/" +} pbuild::add_to_group 'Compiler' pbuild::make_all