# pvAccess C++ implementation
# Jenkins @ Cloudbees build script
#
# Jenkins invokes scripts with the "-ex" option. So the build is considered a failure
# if any of the commands exits with a non-zero exit code.
#
# Author: Ralph Lange <ralph.lange@gmx.de>
# Copyright (C) 2013 Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
# Copyright (C) 2014-2015 ITER Organization.
# All rights reserved. Use is subject to license terms.

###########################################
# Determine EPICS Base version

DEFAULT_BASE=3.14.12.5

BASE=${1:-${DEFAULT_BASE}}
USE_MB=${2:-"MB_NO"}

# Dependent module branches (empty = master)
PVCOMMON_BRANCH="Release-4.1-"
PVDATA_BRANCH="Release-5.0-"

###########################################
# Fetch and unpack dependencies

export STUFF=/tmp/stuff

rm -fr ${STUFF}
mkdir -p ${STUFF}
cd ${STUFF}

wget -nv https://openepics.ci.cloudbees.com/job/Base-${BASE}_Build/lastSuccessfulBuild/artifact/base-${BASE}.CB-dist.tar.gz
wget -nv https://openepics.ci.cloudbees.com/job/pvDataCPP_${PVDATA_BRANCH}Build/BASE=${BASE},USE_MB=MB_NO/lastSuccessfulBuild/artifact/pvData.CB-dist.tar.gz
tar -xzf base-${BASE}.CB-dist.tar.gz
tar -xzf pvData.CB-dist.tar.gz

if [ "${USE_MB}" = "MB_YES" ]; then
    wget -nv https://openepics.ci.cloudbees.com/job/pvCommonCPP_${PVCOMMON_BRANCH}Build/BASE=${BASE},USE_MB=MB_YES/lastSuccessfulBuild/artifact/pvCommon.CB-dist.tar.gz
    tar -xzf pvCommon.CB-dist.tar.gz
fi

###########################################
# Build

cd ${WORKSPACE}

export EPICS_BASE=${STUFF}
export EPICS_HOST_ARCH=$(${EPICS_BASE}/startup/EpicsHostArch)
export LD_LIBRARY_PATH=${EPICS_BASE}/lib/${EPICS_HOST_ARCH}
export PATH=${STUFF}/bin:${PATH}

cat > configure/RELEASE.local << EOF
EPICS_BASE=${EPICS_BASE}
EOF

if [ "${USE_MB}" = "MB_YES" ]; then
	# must use TAB characters here
	cat > configure/CONFIG_SITE.local <<- EOF
	WITH_MICROBENCH=1
	EOF
fi

make distclean all

###########################################
# Test

make runtests

###########################################
# Create distribution

tar --exclude=test* -czf pvAccess.CB-dist.tar.gz bin lib include dbd
