diff --git a/compile_revision.sh b/compile_revision.sh old mode 100644 new mode 100755 index 567ea65..480ef56 --- a/compile_revision.sh +++ b/compile_revision.sh @@ -1,70 +1,73 @@ -#!/usr/bin/env bash +#!/usr/bin/bash +set -euo pipefail akantu_src=$1 test_src=$2 revision=$3 usage() { - echo $1 + echo "$1 " } if [ ! -e ${akantu_src} -o -z ${akantu_src} ]; then - usage(); + usage() exit 1 fi if [ ! -e ${test_src} -o -z ${test_src} ]; then - usage(); + usage() exit 2 fi -cd ${akantu_src} -git checkout ${revision} +wd=${PWD} -revision_date=$(git log -1 --format='%ct') +prefix=$(mktemp --directory akantu.XXXXXXX --tmpdir) -mkdir build-${revision} -cd build-${revision} +git clone ${akantu_src} -b ${revision} --depth 1 ${prefix}/akantu +revision_date=$(git log -1 --format='%ct') +cd ${prefix}/akantu +mkdir build +cd build echo "*** Configuring revision r${revision} ***" -cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILE_FLAGS:STRING='-march=native' -DAKANTU_DEBUG:BOOL=OFF ${akantu_src} > configure.log 2>&1 +cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILE_FLAGS:STRING='-march=native' -DAKANTU_DEBUG:BOOL=OFF ${akantu_src} > ${wd}/configure-akantu-${revision}.log 2>&1 if [ ! $? -eq 0 ]; then exit 100 fi echo "*** Building revision r${revision} ***" -make > make.log 2>&1 +make > ${wd}/make-akantu-${revision} 2>&1 if [ ! $? -eq 0 ]; then exit 200 fi -cd ${test_src} -mkdir build-${revision} -cd build-${revision} + +mkdir ${prefix}/build +cd ${prefix}/build # 1413714847 epoch of tag v2.2 if [ $revision -lt 1413714847 ]; then echo "MAJOR 1" VERSION=1 else echo "MAJOR 2" VERSION=2 fi echo "*** Configuring test for r${revision} ***" -cmake -DAKANTU_VERSION_MAJOR:STRING=$VERSION -DAkantu_DIR:PATH=${akantu_src}/buidl-${revision} ${test_src} > configure.log 2>&1 +cmake -DAKANTU_VERSION_MAJOR:STRING=$VERSION -DAkantu_DIR:PATH=${prefix}/akantu/build ${test_src} > ${wd}/configure-test-${revision} 2>&1 if [ ! $? -eq 0 ]; then exit 300 fi echo "*** Building test for r${revision} ***" -make > make.log 2>&1 +make > ${wd}/make-test-${revision} 2>&1 if [ ! $? -eq 0 ]; then exit 400 fi