1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
#!/usr/bin/env bash
#
source "$(dirname "$0")/get-script-header.sh"
ANTLR_HOME_DIR="$DEPS_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
mkdir -p "$INSTALL_DIR/share/java"
webget \
"https://www.antlr3.org/download/antlr-3.4-complete.jar" \
"$INSTALL_DIR/share/java/antlr-3.4-complete.jar"
mkdir -p "$ANTLR_HOME_DIR/bin"
tee "$ANTLR_HOME_DIR/bin/antlr3" <<EOF
#!/usr/bin/env bash
export CLASSPATH=$INSTALL_DIR/share/java/antlr-3.4-complete.jar:\$CLASSPATH
exec java org.antlr.Tool "\$@"
EOF
chmod a+x "$ANTLR_HOME_DIR/bin/antlr3"
install_bin "$ANTLR_HOME_DIR/bin/antlr3"
setup_dep \
"https://www.antlr3.org/download/C/libantlr3c-3.4.tar.gz" \
"$ANTLR_HOME_DIR/libantlr3c-3.4"
cd "$ANTLR_HOME_DIR/libantlr3c-3.4"
# Make antlr3debughandlers.c empty to avoid unreferenced symbols
rm -rf src/antlr3debughandlers.c && touch src/antlr3debughandlers.c
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
# 64-bit stuff here
./configure --enable-64bit --disable-antlrdebug --prefix="$INSTALL_DIR" $ANTLR_CONFIGURE_ARGS $BUILD_TYPE
else
# 32-bit stuff here
./configure --disable-antlrdebug --prefix="$INSTALL_DIR" $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
if [[ $WINDOWS_BUILD == "yes" ]]; then
exit 0
fi
mv "$INSTALL_LIB_DIR/libantlr3c.a" "$INSTALL_LIB_DIR/libantlr3c-static.a"
make clean
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
# 64-bit stuff here
./configure --enable-64bit --with-pic --disable-antlrdebug --prefix="$INSTALL_DIR" $ANTLR_CONFIGURE_ARGS $BUILD_TYPE
else
# 32-bit stuff here
./configure --with-pic --disable-antlrdebug --prefix="$INSTALL_DIR" $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
mv "$INSTALL_LIB_DIR/libantlr3c.la" "$INSTALL_LIB_DIR/libantlr3c.la.orig"
awk '/^old_library=/ {print "old_library='\''libantlr3c-static.a'\''"} /^library_names=/ {print "library_names='\''libantlr3c.a'\''"} !/^old_library=/ && !/^library_names=/ {print}' < "$INSTALL_LIB_DIR/libantlr3c.la.orig" > "$INSTALL_LIB_DIR/libantlr3c.la"
rm "$INSTALL_LIB_DIR/libantlr3c.la.orig"
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
|