diff -r 6b13586ef1a2 -r d23b7c9b9dd4 Admin/polyml/build --- a/Admin/polyml/build Thu Dec 08 17:22:51 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -#!/usr/bin/env bash -# -# Multi-platform build script for Poly/ML - -THIS="$(cd "$(dirname "$0")"; pwd)" -PRG="$(basename "$0")" - - -# diagnostics - -function usage() -{ - echo - echo "Usage: $PRG SOURCE TARGET [OPTIONS]" - echo - echo " Build Poly/ML in SOURCE directory for given platform in TARGET," - echo " using the usual Isabelle platform identifiers." - echo - echo " Additional options for ./configure may be given, e.g. --with-gmp" - echo - exit 1 -} - -function fail() -{ - echo "$1" >&2 - exit 2 -} - - -# command line args - -[ "$#" -eq 0 ] && usage -SOURCE="$1"; shift - -[ "$#" -eq 0 ] && usage -TARGET="$1"; shift - -USER_OPTIONS=("$@") - - -# main - -[ -d "$SOURCE" ] || fail "Bad source directory: \"$SOURCE\"" - -case "$TARGET" in - x86-linux) - OPTIONS=() - ;; - x86_64-linux) - OPTIONS=() - ;; - x86-darwin) - OPTIONS=(--build=i686-darwin CFLAGS='-arch i686 -O3 -I../libffi/include' - CXXFLAGS='-arch i686 -O3 -I../libffi/include' CCASFLAGS='-arch i686 -O3' - LDFLAGS='-segprot POLY rwx rwx') - ;; - x86_64-darwin) - OPTIONS=(--build=x86_64-darwin CFLAGS='-arch x86_64 -O3 -I../libffi/include' - CXXFLAGS='-arch x86_64 -O3 -I../libffi/include' CCASFLAGS='-arch x86_64' - LDFLAGS='-segprot POLY rwx rwx') - ;; - x86-cygwin) - OPTIONS=() - ;; - x86-windows) - OPTIONS=(--host=i686-w32-mingw32 CPPFLAGS='-I/mingw32/include' --disable-windows-gui) - PATH="/mingw32/bin:$PATH" - ;; - x86_64-windows) - OPTIONS=(--host=x86_64-w64-mingw32 CPPFLAGS='-I/mingw64/include' --disable-windows-gui) - PATH="/mingw64/bin:$PATH" - ;; - *) - fail "Bad platform identifier: \"$TARGET\"" - ;; -esac - -( - cd "$SOURCE" - make distclean - - { ./configure --prefix="$PWD/$TARGET" "${OPTIONS[@]}" --enable-intinf-as-int "${USER_OPTIONS[@]}" && \ - make compiler && \ - make compiler && \ - make install; } || fail "Build failed" -) - -mkdir -p "$TARGET" -for X in "$TARGET"/* -do - [ -d "$X" ] && rm -rf "$X" -done -rm -rf "$TARGET/polyml" -cp -a "$THIS/polyi" "$TARGET/" -mv "$SOURCE/$TARGET/bin/"* "$TARGET/" -mv "$SOURCE/$TARGET/lib/"* "$TARGET/" -rmdir "$SOURCE/$TARGET/bin" "$SOURCE/$TARGET/lib" -rm -rf "$SOURCE/$TARGET/share" - -case "$TARGET" in - x86-cygwin) - peflags -x8192000 -z500 "$TARGET/poly.exe" - ;; - x86-windows) - for X in libgcc_s_dw2-1.dll libgmp-10.dll libstdc++-6.dll - do - cp "/mingw32/bin/$X" "$TARGET/." - done - ;; - x86_64-windows) - for X in libgcc_s_seh-1.dll libgmp-10.dll libstdc++-6.dll - do - cp "/mingw64/bin/$X" "$TARGET/." - done - ;; -esac