Admin/polyml/build
changeset 59105 976e73e11d9a
parent 59104 09a9b04605e5
child 59106 ba511c1e97f2
     1.1 --- a/Admin/polyml/build	Sat Apr 11 11:28:31 2015 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,95 +0,0 @@
     1.4 -#!/usr/bin/env bash
     1.5 -#
     1.6 -# Multi-platform build script for Poly/ML
     1.7 -
     1.8 -THIS="$(cd "$(dirname "$0")"; pwd)"
     1.9 -PRG="$(basename "$0")"
    1.10 -
    1.11 -
    1.12 -# diagnostics
    1.13 -
    1.14 -function usage()
    1.15 -{
    1.16 -  echo
    1.17 -  echo "Usage: $PRG SOURCE TARGET [OPTIONS]"
    1.18 -  echo
    1.19 -  echo "  Build Poly/ML in SOURCE directory for given platform in TARGET,"
    1.20 -  echo "  using the usual Isabelle platform identifiers."
    1.21 -  echo
    1.22 -  echo "  Additional options for ./configure may be given, e.g. --with-gmp"
    1.23 -  echo
    1.24 -  exit 1
    1.25 -}
    1.26 -
    1.27 -function fail()
    1.28 -{
    1.29 -  echo "$1" >&2
    1.30 -  exit 2
    1.31 -}
    1.32 -
    1.33 -
    1.34 -# command line args
    1.35 -
    1.36 -[ "$#" -eq 0 ] && usage
    1.37 -SOURCE="$1"; shift
    1.38 -
    1.39 -[ "$#" -eq 0 ] && usage
    1.40 -TARGET="$1"; shift
    1.41 -
    1.42 -USER_OPTIONS=("$@")
    1.43 -
    1.44 -
    1.45 -# main
    1.46 -
    1.47 -[ -d "$SOURCE" ] || fail "Bad source directory: \"$SOURCE\""
    1.48 -
    1.49 -case "$TARGET" in
    1.50 -  x86-linux)
    1.51 -    OPTIONS=()
    1.52 -    ;;
    1.53 -  x86_64-linux)
    1.54 -    OPTIONS=()
    1.55 -    ;;
    1.56 -  x86-darwin)
    1.57 -    OPTIONS=(--build=i686-darwin CFLAGS='-arch i686 -O3 -I../libffi/include'
    1.58 -      CXXFLAGS='-arch i686 -O3 -I../libffi/include' CCASFLAGS='-arch i686 -O3'
    1.59 -      LDFLAGS='-segprot POLY rwx rwx')
    1.60 -    ;;
    1.61 -  x86_64-darwin)
    1.62 -   OPTIONS=(--build=x86_64-darwin CFLAGS='-arch x86_64 -O3 -I../libffi/include'
    1.63 -     CXXFLAGS='-arch x86_64 -O3 -I../libffi/include' CCASFLAGS='-arch x86_64'
    1.64 -     LDFLAGS='-segprot POLY rwx rwx')
    1.65 -    ;;
    1.66 -  x86-cygwin)
    1.67 -    OPTIONS=()
    1.68 -    ;;
    1.69 -  x86-windows)
    1.70 -    OPTIONS=()
    1.71 -    ;;
    1.72 -  x86_64-windows)
    1.73 -    OPTIONS=()
    1.74 -    ;;
    1.75 -  *)
    1.76 -    fail "Bad platform identifier: \"$TARGET\""
    1.77 -    ;;
    1.78 -esac
    1.79 -
    1.80 -(
    1.81 -  cd "$SOURCE"
    1.82 -  make distclean
    1.83 -
    1.84 -  { ./configure --prefix="$PWD/$TARGET" "${OPTIONS[@]}" "${USER_OPTIONS[@]}" && \
    1.85 -    make compiler && \
    1.86 -    make compiler && \
    1.87 -    make install; } || fail "Build failed"
    1.88 -)
    1.89 -
    1.90 -mkdir -p "$TARGET"
    1.91 -mv "$SOURCE/$TARGET/bin/"* "$TARGET/"
    1.92 -mv "$SOURCE/$TARGET/lib/"* "$TARGET/"
    1.93 -rmdir "$SOURCE/$TARGET/bin" "$SOURCE/$TARGET/lib"
    1.94 -rm -rf "$SOURCE/$TARGET/share"
    1.95 -
    1.96 -if [ "$TARGET" = x86-cygwin ]; then
    1.97 -  peflags -x8192000 -z500 "$TARGET/poly.exe"
    1.98 -fi