summaryrefslogtreecommitdiff
path: root/contrib/get-antlr-3.4
blob: 9ab0695b7d364b8a485e16cfdcda190d7c9aabbe (plain)
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 "$ANTLR_HOME_DIR/share/java"
webget \
  "https://www.antlr3.org/download/antlr-3.4-complete.jar" \
  "$ANTLR_HOME_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=$ANTLR_HOME_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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback