#!/bin/bash # source "$(dirname "$0")/get-script-header.sh" ANTLR_HOME_DIR=antlr-3.4 if [ -z "${BUILD_TYPE}" ]; then BUILD_TYPE="--disable-shared --enable-static" fi if [ -z "${MACHINE_TYPE}" ]; then CONFIG_GUESS_SCRIPT=$ANTLR_HOME_DIR/config.guess if ! [ -e ${CONFIG_GUESS_SCRIPT} ]; then mkdir -p $ANTLR_HOME_DIR # Attempt to download once webget 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' $CONFIG_GUESS_SCRIPT if [ -e $CONFIG_GUESS_SCRIPT ]; then chmod +x $CONFIG_GUESS_SCRIPT else echo "$(basename $0): I need the file config/config.guess to tell MACHINE_TYPE" >&2 echo "Try running ./autogen.sh, or set the MACHINE_TYPE environment variable" >&2 echo "(e.g., \"export MACHINE_TYPE=x86_64\")." >&2 exit 1 fi fi # get first nibble from config.guess (x86_64, i686, ...) MACHINE_TYPE=$(${CONFIG_GUESS_SCRIPT} | sed 's,-.*,,') fi set -x mkdir -p $ANTLR_HOME_DIR/share/java mkdir -p $ANTLR_HOME_DIR/bin mkdir -p $ANTLR_HOME_DIR/src cd $ANTLR_HOME_DIR || exit 1 webget https://www.antlr3.org/download/antlr-3.4-complete.jar share/java/antlr-3.4-complete.jar webget https://www.antlr3.org/download/C/libantlr3c-3.4.tar.gz src/libantlr3c-3.4.tar.gz tee bin/antlr3 < Makefile make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" LDFLAGS="${MAKE_LDFLAGS}" make install if [[ $WINDOWS_BUILD == "yes" ]]; then exit 0 fi cd ../.. mv lib/libantlr3c.a lib/libantlr3c-static.a cd src/libantlr3c-3.4 make clean if [ ${MACHINE_TYPE} == 'x86_64' ]; then # 64-bit stuff here ./configure --enable-64bit --with-pic --disable-antlrdebug --prefix="${PREFIX}" $ANTLR_CONFIGURE_ARGS $BUILD_TYPE else # 32-bit stuff here ./configure --with-pic --disable-antlrdebug --prefix="${PREFIX}" $ANTLR_CONFIGURE_ARGS $BUILD_TYPE fi cp Makefile Makefile.orig sed 's,^\(CFLAGS = .*\),\1 -fexceptions,' Makefile.orig > Makefile make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" LDFLAGS="${MAKE_LDFLAGS}" make install cd ../.. mv lib/libantlr3c.la lib/libantlr3c.la.orig awk '/^old_library=/ {print "old_library='\''libantlr3c-static.a'\''"} /^library_names=/ {print "library_names='\''libantlr3c.a'\''"} !/^old_library=/ && !/^library_names=/ {print}' < lib/libantlr3c.la.orig > lib/libantlr3c.la set +x cd .. # echo # echo Invalidating generated parsers.. # touch src/parser/*/*.g if [ ${MACHINE_TYPE} == 'x86_64' ]; then # 64-bit stuff here echo ============== WARNING ==================== echo The script guessed that this machine is 64 bit. echo If antlr should be built as 32 bit \(i.e. -m32\), echo please rerun the script as echo MACHINE_TYPE=\"x86\" ./get-antlr3.4 else # 32-bit stuff here echo ============== WARNING ==================== echo The script guessed that this machine is 32 bit. echo If antlr should be built as 64 bit \(i.e. -m64\), echo please rerun the script as echo MACHINE_TYPE=\"x86_64\" ./get-antlr3.4 fi echo echo ===================== Now configure CVC4 with ===================== echo ./configure.sh