#!/bin/bash
set -e
# Any subsequent(*) commands which fail will cause the shell script to exit immediately


#########################################################################
# Build Antlr4.72 for Java and C++ 
#########################################################################
echo "Building Antlr"

export CXX=`which g++` ; export CC=`which gcc`
# For Travis build
if test -f /usr/bin/g++-7 || test -f /usr/local/bin/g++-7 ; then
   export CXX=`which g++-7` ; 
   export CC=`which gcc-7` ;  
fi

$CXX --version
echo $?

# From the internet
#mkdir -p ../antlr4
#cd ../antlr4
#wget https://github.com/antlr/antlr4/archive/4.7.2.zip
#unzip 4.7.2.zip
#cp -R ../third_party/antlr4/runtime/*              antlr4-4.7.2/runtime
#cd antlr4-4.7.2
#export MAVEN_OPTS="-Xmx1G"   
#mvn clean                   
#mvn -DskipTests install

# From the local copy
mkdir -p ../antlr4/antlr4-4.7.2/tool/target/
mkdir -p ../antlr4/antlr4-4.7.2/runtime
mkdir -p ../antlr4/antlr4-4.7.2/tool/target/
cd ../antlr4
cp ../third_party/antlr4/antlr4-4.7.2-complete.jar antlr4-4.7.2/tool/target/
cp -R ../third_party/antlr4/runtime/*              antlr4-4.7.2/runtime
cd antlr4-4.7.2

# Optimized version
if test ! -f runtime/Cpp/run/usr/local/lib/libantlr4-runtime.a; then
    echo "Building optimized version"
    cd runtime/Cpp
    rm -rf build run
    mkdir build && mkdir run && cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="-fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"
    make -j 4
    DESTDIR=../../../runtime/Cpp/run make install
    cd ../../../
fi

# Debug version:
if test ! -f runtime/Cpp-Debug/run/usr/local/lib/libantlr4-runtime.a; then
    echo "Building debug version"
    cd runtime
    cp -r Cpp Cpp-Debug
    cd Cpp-Debug
    rm -rf build run
    mkdir build && mkdir run && cd build
    cmake .. -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_BUILD_TYPE=Debug
    make -j 4
    DESTDIR=../../../runtime/Cpp-Debug/run make install
    cd ../../../
fi

# Memory Sanitizer version:
if test ! -f runtime/Cpp-AdvancedDebug/run/usr/local/lib/libantlr4-runtime.a; then
    echo "Building sanitizer version"
    cd runtime
    cp -r Cpp Cpp-AdvancedDebug
    cd Cpp-AdvancedDebug
    rm -rf build run
    mkdir build && mkdir run && cd build
    cmake .. -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_BUILD_TYPE=Debug  -DCMAKE_CXX_FLAGS="-D_GLIBCXX_DEBUG=1 -fsanitize=address -fno-omit-frame-pointer"
    make -j 4
    DESTDIR=../../../runtime/Cpp-AdvancedDebug/run make install
    cd ../../../
fi

echo "Done Building Antlr"
