forked from alisw/alidist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrivet.sh
81 lines (75 loc) · 2.89 KB
/
rivet.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package: Rivet
version: "%(tag_basename)s"
tag: 2.5.1-alice1
source: https://github.com/alisw/rivet
requires:
- GSL
- YODA
- fastjet
- HepMC
- boost
prepend_path:
PYTHONPATH: $RIVET_ROOT/lib64/python2.7/site-packages:$RIVET_ROOT/lib/python2.7/site-packages
---
#!/bin/bash -e
case $ARCHITECTURE in
osx*)
# If we preferred system tools, we need to make sure we can pick them up.
[[ ! $GSL_ROOT ]] && GSL_ROOT=`brew --prefix gsl`
[[ ! $BOOST_ROOT ]] && BOOST_ROOT=`brew --prefix boost`
;;
*)
ARCH_LDFLAGS="-Wl,--no-as-needed"
;;
esac
rsync -a --exclude='**/.git' --delete --delete-excluded $SOURCEDIR/ ./
# MPFR and GMP are compiled statically, however in some cases there might be
# some "-lgmp" left somewhere and we have to deal with it with the correct path.
# Boost flags are also necessary
export LDFLAGS="$ARCH_LDFLAGS -L${MPFR_ROOT}/lib -L${GMP_ROOT}/lib -L${CGAL_ROOT}/lib -lCGAL"
export LIBRARY_PATH="$LD_LIBRARY_PATH"
export CXXFLAGS="$CXXFLAGS -I${MPFR_ROOT}/include -I${GMP_ROOT}/include -I${CGAL_ROOT}/include -DCGAL_DO_NOT_USE_MPZF"
if [[ "$BOOST_ROOT" != '' ]]; then
export LDFLAGS="$LDFLAGS -L$BOOST_ROOT/lib"
export CXXFLAGS="$CXXFLAGS -I$BOOST_ROOT/include"
fi
if printf "int main(){}" | c++ $LDFLAGS -lboost_thread -lboost_system -xc++ - -o /dev/null; then
export LDFLAGS="$LDFLAGS -lboost_thread -lboost_system"
else
export LDFLAGS="$LDFLAGS -lboost_thread-mt -lboost_system-mt"
fi
[[ "$CXXFLAGS" != *'-std=c++11'* ]] || CXX11=1
autoreconf -ivf
./configure \
--prefix="$INSTALLROOT" \
--disable-doxygen \
--with-yoda="$YODA_ROOT" \
${GSL_ROOT:+--with-gsl="$GSL_ROOT"} \
--with-hepmc="$HEPMC_ROOT" \
--with-fastjet="$FASTJET_ROOT" \
${BOOST_ROOT:+--with-boost="$BOOST_ROOT"} \
${CXX11:+--enable-stdcxx11}
make -j$JOBS
make install
# Modulefile
MODULEDIR="$INSTALLROOT/etc/modulefiles"
MODULEFILE="$MODULEDIR/$PKGNAME"
mkdir -p "$MODULEDIR"
cat > "$MODULEFILE" <<EoF
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
}
set version $PKGVERSION-@@PKGREVISION@$PKGHASH@@
module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
# Dependencies
module load BASE/1.0 ${GSL_VERSION:+GSL/$GSL_VERSION-$GSL_REVISION} YODA/$YODA_VERSION-$YODA_REVISION fastjet/$FASTJET_VERSION-$FASTJET_REVISION HepMC/$HEPMC_VERSION-$HEPMC_REVISION
# Our environment
setenv RIVET_ROOT \$::env(BASEDIR)/$PKGNAME/\$version
prepend-path PYTHONPATH \$::env(RIVET_ROOT)/lib/python2.7/site-packages
prepend-path PYTHONPATH \$::env(RIVET_ROOT)/lib64/python2.7/site-packages
prepend-path PATH \$::env(RIVET_ROOT)/bin
prepend-path LD_LIBRARY_PATH \$::env(RIVET_ROOT)/lib
$([[ ${ARCHITECTURE:0:3} == osx ]] && echo "prepend-path DYLD_LIBRARY_PATH \$::env(RIVET_ROOT)/lib")
EoF