Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8723386
rivet-bootstrap
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
rivet-bootstrap
View Options
#! /usr/bin/env bash
# Rivet bootstrapping / installation script for version 3.0.x
test
-z
"
$BUILD_PREFIX
"
&&
BUILD_PREFIX
=
"
$PWD
"
test
-z
"
$INSTALL_PREFIX
"
&&
INSTALL_PREFIX
=
"
$PWD
/local"
test
-z
"
$MAKE
"
&&
MAKE
=
"make -j3"
test
-z
"
$INSTALL_HEPMC
"
&&
INSTALL_HEPMC
=
"1"
test
-z
"
$INSTALL_FASTJET
"
&&
INSTALL_FASTJET
=
"1"
test
-z
"
$INSTALL_FJCONTRIB
"
&&
INSTALL_FJCONTRIB
=
"1"
test
-z
"
$INSTALL_YODA
"
&&
INSTALL_YODA
=
"1"
test
-z
"
$INSTALL_RIVET
"
&&
INSTALL_RIVET
=
"1"
test
-z
"
$RIVET_VERSION
"
&&
RIVET_VERSION
=
"3.0.2"
test
-z
"
$YODA_VERSION
"
&&
YODA_VERSION
=
"1.7.7"
test
-z
"
$HEPMC_VERSION
"
&&
HEPMC_VERSION
=
"2.06.09"
#< TODO: update to v3 when stable
test
-z
"
$FASTJET_VERSION
"
&&
FASTJET_VERSION
=
"3.3.2"
test
-z
"
$FJCONTRIB_VERSION
"
&&
FJCONTRIB_VERSION
=
"1.041"
## Rivet needs C++11 now: first run a simple test for that
test
-z
"
$CXX
"
&&
CXX
=
"g++"
echo
"int main() { return 0; }"
> cxxtest.cc
CXX11
=
1
$CXX
-std
=
c++11 cxxtest.cc -o cxxtest
&
> /dev/null
||
CXX11
=
0
rm -f cxxtest cxxtest.cc
if
[[
"
$CXX11
"
-ne
1
]]
;
then
echo
"
$CXX
does not accept the -std=c++11 flag. You need C++ to build Rivet: exiting installation :-("
exit
1
else
echo
"
$CXX
accepts the -std=c++11 flag: hurrah! Continuing installation..."
echo
fi
## Paths for the case of existing installations
test
-z
"
$HEPMCPATH
"
&&
HEPMCPATH
=
"/usr"
test
-z
"
$FASTJETPATH
"
&&
FASTJETPATH
=
"/usr"
test
-z
"
$YODAPATH
"
&&
YODAPATH
=
"/usr"
test
-z
"
$RIVET_CONFFLAGS
"
&&
RIVET_CONFFLAGS
=
""
#--enable-unvalidated
test
-z
"
$YODA_CONFFLAGS
"
&&
YODA_CONFFLAGS
=
""
if
[[
"
$INSTALL_RIVETDEV
"
-eq
"1"
]]
;
then
## For rivetdev we skip the normal yoda/rivet installation
INSTALL_YODA
=
"0"
INSTALL_RIVET
=
"0"
## Might need to install some extra toolkit bits for dev mode
test
-z
"
$INSTALL_AUTOTOOLS
"
&&
INSTALL_AUTOTOOLS
=
"1"
test
-z
"
$INSTALL_HG
"
&&
INSTALL_HG
=
"1"
test
-z
"
$INSTALL_CYTHON
"
&&
INSTALL_CYTHON
=
"1"
fi
## Disable asserts for production running
export
CPPFLAGS
=
"
$CPPFLAGS
-DNDEBUG"
###############
echo
"Running Rivet bootstrap script"
echo
"Building Rivet
$RIVET_VERSION
, YODA
$YODA_VERSION
"
## Immediate exit on a command (group) failure and optional debug mode
set
-e
test
-n
"
$DEBUG
"
&&
set
-x
export
PATH
=
$INSTALL_PREFIX
/bin:
$PATH
function
wget_untar
{
wget --no-check-certificate
$1
-O-
|
tar xz
;
}
function
conf
{
./configure --prefix
=
$INSTALL_PREFIX
"
$@
"
;
}
function
mmi
{
$MAKE
"
$@
"
&&
$MAKE
install
;
}
## Make installation directory, with an etc subdir so Rivet etc. will install bash completion scripts
mkdir -p
$INSTALL_PREFIX
/etc/bash_completion.d
## Install HepMC
if
[[
"
$INSTALL_HEPMC
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
test
-d hepmc
$HEPMC_VERSION
||
wget_untar http://hepmc.web.cern.ch/hepmc/releases/hepmc
$HEPMC_VERSION
.tgz
cd
hepmc
$HEPMC_VERSION
conf --with-momentum
=
GEV --with-length
=
MM
mmi
HEPMCPATH
=
$INSTALL_PREFIX
fi
## Install FastJet
if
[[
"
$INSTALL_FASTJET
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
test
-d fastjet-
$FASTJET_VERSION
||
wget_untar http://www.fastjet.fr/repo/fastjet-
$FASTJET_VERSION
.tar.gz
cd
fastjet-
$FASTJET_VERSION
conf --enable-shared --disable-auto-ptr --enable-allcxxplugins
mmi
FASTJETPATH
=
$INSTALL_PREFIX
fi
## Install fjcontrib
if
[[
"
$INSTALL_FJCONTRIB
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
test
-d fastjet-
$FJCONTRIB_VERSION
||
wget_untar http://fastjet.hepforge.org/contrib/downloads/fjcontrib-
$FJCONTRIB_VERSION
.tar.gz
cd
fjcontrib-
$FJCONTRIB_VERSION
./configure --fastjet-config
=
$FASTJETPATH
/bin/fastjet-config
CXXFLAGS
=
-fPIC
# fastjet-config already contains INSTALL_PREFIX
mmi fragile-shared-install
# does not need FJCONTRIBPATH because the relevant includes/libraries are merged with regular FastJet structure
fi
## Install YODA
if
[[
"
$INSTALL_YODA
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
test
-d YODA-
$YODA_VERSION
||
wget_untar http://www.hepforge.org/archive/yoda/YODA-
$YODA_VERSION
.tar.gz
cd
YODA-
$YODA_VERSION
conf
$YODA_CONFFLAGS
mmi
cp yodaenv.sh
$INSTALL_PREFIX
/yodaenv.sh
YODAPATH
=
$INSTALL_PREFIX
fi
## Install Rivet
if
[[
"
$INSTALL_RIVET
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
test
-d Rivet-
$RIVET_VERSION
||
wget_untar http://www.hepforge.org/archive/rivet/Rivet-
$RIVET_VERSION
.tar.gz
cd
Rivet-
$RIVET_VERSION
conf
$RIVET_CONFFLAGS
\
--with-yoda
=
$YODAPATH
\
--with-hepmc
=
$HEPMCPATH
\
--with-fastjet
=
$FASTJETPATH
mmi
cp rivetenv.sh rivetenv.csh
$INSTALL_PREFIX
/
fi
## Following block for dev mode only -- non-developers should ignore
if
[[
"
$INSTALL_RIVETDEV
"
-eq
"1"
]]
;
then
## Install autotools
if
[[
"
$INSTALL_AUTOTOOLS
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
function
_build_autotool
()
{
name
=
$1
-
$2
if
[
! -e
$name
]
;
then
wget_untar http://ftpmirror.gnu.org/
$1
/
$name
.tar.gz
;
fi
cd
$name
./configure --prefix
=
$INSTALL_PREFIX
mmi
cd
..
}
test
-e
$INSTALL_PREFIX
/bin/m4
||
{
echo
;
echo
"Building m4"
;
_build_autotool m4
1
.4.18
;
}
test
-e
$INSTALL_PREFIX
/bin/autoconf
||
{
echo
;
echo
"Building autoconf"
;
_build_autotool autoconf
2
.69
;
}
test
-e
$INSTALL_PREFIX
/bin/automake
||
{
echo
;
echo
"Building automake"
;
_build_autotool automake
1
.16.1
;
}
test
-e
$INSTALL_PREFIX
/bin/libtool
||
{
echo
;
echo
"Building libtool"
;
_build_autotool libtool
2
.4.6
;
}
fi
## Install hg
if
[[
"
$INSTALL_HG
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
HG_VERSION
=
4
.6.2
test
-d mercurial-
$HG_VERSION
||
wget_untar http://mercurial-scm.org/release/mercurial-
$HG_VERSION
.tar.gz
cd
mercurial-
$HG_VERSION
$MAKE
PREFIX
=
$INSTALL_PREFIX
install-bin
fi
## Install Cython
if
[[
"
$INSTALL_CYTHON
"
-eq
"1"
]]
;
then
cd
$BUILD_PREFIX
CYTHON_VERSION
=
0
.28.5
test
-d cython-
$CYTHON_VERSION
||
{
wget https://github.com/cython/cython/archive/
$CYTHON_VERSION
.tar.gz -O -
|
tar xz
;
}
export
PATH
=
$BUILD_PREFIX
/cython-
$CYTHON_VERSION
/bin:
$PATH
export
PYTHONPATH
=
$BUILD_PREFIX
/cython-
$CYTHON_VERSION
:
$PYTHONPATH
fi
## Install dev YODA
cd
$BUILD_PREFIX
test
-d yoda
||
hg clone https://phab.hepforge.org/source/yodahg/yoda -b release-1-7 --insecure
cd
yoda
hg pull -u --insecure
autoreconf -i
conf
$YODA_CONFFLAGS
mmi
cp yodaenv.sh
$INSTALL_PREFIX
/yodaenv.sh
YODAPATH
=
$INSTALL_PREFIX
## Install dev Rivet
cd
$BUILD_PREFIX
test
-d rivet
||
hg clone https://phab.hepforge.org/source/rivethg/rivet -u release-3-0-x --insecure
cd
rivet
hg pull -u --insecure
autoreconf -i
conf
$RIVET_CONFFLAGS
\
--with-yoda
=
$YODAPATH
\
--with-hepmc
=
$HEPMCPATH
\
--with-fastjet
=
$FASTJETPATH
mmi
cp rivetenv.sh rivetenv.csh
$INSTALL_PREFIX
/
fi
## Announce the build success
echo
;
echo
"All done. Now set some variables in your shell by sourcing
$INSTALL_PREFIX
/rivetenv.(c)sh"
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Mon, Jan 20, 8:24 PM (12 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4242218
Default Alt Text
rivet-bootstrap (6 KB)
Attached To
rRIVETBOOTSTRAPHG rivetbootstraphg
Event Timeline
Log In to Comment