summaryrefslogtreecommitdiff
path: root/contrib/get-win-dependencies
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/get-win-dependencies')
-rwxr-xr-xcontrib/get-win-dependencies116
1 files changed, 116 insertions, 0 deletions
diff --git a/contrib/get-win-dependencies b/contrib/get-win-dependencies
new file mode 100755
index 000000000..2342a09ff
--- /dev/null
+++ b/contrib/get-win-dependencies
@@ -0,0 +1,116 @@
+#!/bin/bash
+#
+# win32-build script
+# Morgan Deters <mdeters@cs.nyu.edu>
+# Tue, 15 Jan 2013 11:11:24 -0500
+#
+
+export WINDOWS_BUILD=yes
+export MAKE_CFLAGS=
+export MAKE_CXXFLAGS=
+export MAKE_LDFLAGS=
+export BUILD_TYPE="--disable-shared --enable-static"
+while getopts ":s" opt; do
+ case ${opt} in
+ s )
+ MAKE_CFLAGS="-static-libgcc -static-libstdc++"
+ MAKE_CXXFLAGS="-static-libgcc -static-libstdc++"
+ # CVC4 uses some internal symbols of ANTLR, so all symbols need to be
+ # exported
+ MAKE_LDFLAGS="-no-undefined -Wl,--export-all-symbols"
+ BUILD_TYPE="--enable-shared --disable-static"
+ ;;
+ esac
+done
+
+if [ -z "$HOST" ]; then
+ HOST=i686-w64-mingw32
+ echo "WARNING:"
+ echo "WARNING: Using default HOST value: $HOST"
+ echo "WARNING: You should probably run this script like this:"
+ echo "WARNING:"
+ echo "WARNING: HOST=i686-w64-mingw32 win-build"
+ echo "WARNING:"
+ echo "WARNING: (replacing the i686-w64-mingw32 with your build host)"
+ echo "WARNING: to ensure the script builds correctly."
+ echo "WARNING:"
+fi
+
+GMPVERSION=5.1.0
+BOOSTVERSION=1.55.0
+BOOSTBASE=boost_1_55_0
+
+function reporterror {
+ echo
+ echo =============================================================================
+ echo
+ echo "There was an error setting up the prerequisites. Look above for details."
+ echo
+ exit 1
+}
+
+function webget {
+ if which curl &>/dev/null; then
+ curl -L "$1" >"$2"
+ elif which wget &>/dev/null; then
+ wget -c -O "$2" "$1"
+ else
+ echo "Can't figure out how to download from web. Please install wget or curl." >&2
+ exit 1
+ fi
+}
+
+for dir in antlr-3.4 gmp-$GMPVERSION boost-$BOOSTVERSION; do
+ if [ -e "$dir" ]; then
+ echo "error: $dir directory exists; please move it out of the way." >&2
+ exit 1
+ fi
+done
+
+echo =============================================================================
+echo
+echo "Setting up ANTLR 3.4..."
+echo
+MACHINE_TYPE="x86_64" ANTLR_CONFIGURE_ARGS="--host=$HOST" contrib/get-antlr-3.4 | grep -v 'Now configure CVC4 with' | grep -v '\./configure --with-antlr-dir='
+[ ${PIPESTATUS[0]} -eq 0 ] || reporterror
+echo
+echo =============================================================================
+echo
+echo "Setting up GMP $GMPVERSION..."
+echo
+( set -ex
+ mkdir gmp-$GMPVERSION
+ cd gmp-$GMPVERSION
+ gmpprefix=`pwd` &&
+ mkdir src &&
+ cd src &&
+ webget ftp://ftp.gmplib.org/pub/gmp-$GMPVERSION/gmp-$GMPVERSION.tar.bz2 gmp-$GMPVERSION.tar.bz2 &&
+ tar xfj gmp-$GMPVERSION.tar.bz2 &&
+ cd gmp-$GMPVERSION &&
+ ./configure --host=$HOST --prefix="$gmpprefix" --enable-cxx ${BUILD_TYPE} &&
+ make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" LDFLAGS="${MAKE_LDFLAGS}" &&
+ make install
+) || exit 1
+echo
+echo =============================================================================
+echo
+echo "Setting up Boost..."
+echo
+( mkdir boost-$BOOSTVERSION &&
+ cd boost-$BOOSTVERSION &&
+ webget http://downloads.sourceforge.net/project/boost/boost/$BOOSTVERSION/$BOOSTBASE.tar.gz $BOOSTBASE.tar.gz &&
+ tar xfz $BOOSTBASE.tar.gz &&
+ cd $BOOSTBASE &&
+ ./bootstrap.sh --with-toolset=gcc --prefix=`pwd`/.. --with-libraries=thread &&
+ echo "using gcc : mingw32 : $HOST-gcc ;" >> project-config.jam &&
+ cp tools/build/v2/tools/gcc.jam tools/build/v2/tools/gcc.jam.orig &&
+ sed 's,option = -pthread ; libs = rt ;,,' tools/build/v2/tools/gcc.jam.orig > tools/build/v2/tools/gcc.jam &&
+ ./b2 gcc-mingw32 threadapi=win32 link=static install ) || exit 1
+echo
+echo =============================================================================
+echo
+echo 'Now just run:'
+echo " ./configure --enable-static-binary --disable-shared --host=$HOST LDFLAGS=\"-L`pwd`/gmp-$GMPVERSION/lib -L`pwd`/antlr-3.4/lib -L`pwd`/boost-$BOOSTVERSION/lib\" CPPFLAGS=\"-I`pwd`/gmp-$GMPVERSION/include -I`pwd`/antlr-3.4/include -I`pwd`/boost-$BOOSTVERSION/include\" --with-antlr-dir=\"`pwd`/antlr-3.4\" ANTLR=\"`pwd`/antlr-3.4/bin/antlr3\""
+echo ' make'
+echo
+echo =============================================================================
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback