diff --git a/build.sh b/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..d9cda8b38659d5d820b33d466ea7c4ed99460d3b --- /dev/null +++ b/build.sh @@ -0,0 +1,88 @@ +#!/bin/bash +############################################################################## +# Setup script for CEPCSW: +# - setup the external libraries +# +# Usage: +# $ source setup.sh +# or: +# $ source setup.sh 97.0.2 +# +# Author: Tao Lin <lintao@ihep.ac.cn> +############################################################################## + +function info:() { + echo "INFO: $*" 1>&2 +} + +function error:() { + echo "ERROR: $*" 1>&2 +} + +function check-cepcsw-envvar() { + # CEPCSWEXTERNAL is defined in /cvmfs/cepcsw.ihep.ac.cn/prototype/releases/externals/ + if [ -z "${CEPCSWEXTERNAL}" ]; then + error: "The CEPCSW is not setup. Please source setup.sh." + return 1 + fi +} + +function build-dir() { + local blddir=build + + # If detect the extra env var, append it to the build dir + if [ -n "${lcg_version}" ]; then + blddir=${blddir}.${lcg_version} + fi + if [ -n "${lcg_platform}" ]; then + blddir=${blddir}.${lcg_platform} + fi + + echo $blddir +} + +function check-working-builddir() { + local blddir=$(build-dir) + if [ ! -d "$blddir" ]; then + mkdir $blddir || { + error: "Failed to create $blddir" + return 1 + } + fi +} + +function run-cmake() { + local blddir=$(build-dir) + + if [ ! -d "$blddir" ]; then + error: "Failed to create $blddir" + return 1 + fi + + cd $blddir + + cmake .. -DHOST_BINARY_TAG=${lcg_platform} || { + error: "Failed to cmake" + return 1 + } + +} + +function run-make() { + make +} + +############################################################################## +# Parse the command line options +############################################################################## + +# The current default platform +lcg_platform=x86_64-slc6-gcc8-opt + +check-cepcsw-envvar || exit -1 + +check-working-builddir || exit -1 + +run-cmake || exit -1 + +run-make || exit -1 \ No newline at end of file