1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/lib/Tools/build Tue Jul 17 15:56:19 2012 +0200
1.3 @@ -0,0 +1,78 @@
1.4 +#!/usr/bin/env bash
1.5 +#
1.6 +# Author: Makarius
1.7 +#
1.8 +# DESCRIPTION: build and manage Isabelle sessions
1.9 +
1.10 +
1.11 +## diagnostics
1.12 +
1.13 +PRG="$(basename "$0")"
1.14 +
1.15 +function usage()
1.16 +{
1.17 + echo
1.18 + echo "Usage: isabelle $PRG [OPTIONS] [SESSIONS ...]"
1.19 + echo
1.20 + echo " Options are:"
1.21 + echo " -a all sessions"
1.22 + echo " -b build target images"
1.23 + echo " -l list sessions only"
1.24 + echo " -o OPTION override session configuration OPTION (via NAME=VAL or NAME)"
1.25 + echo
1.26 + echo " Build and manage Isabelle sessions, depending on implicit"
1.27 + echo " ISABELLE_BUILD_OPTIONS=\"$ISABELLE_BUILD_OPTIONS\""
1.28 + echo
1.29 + echo " ML_PLATFORM=\"$ML_PLATFORM\""
1.30 + echo " ML_HOME=\"$ML_HOME\""
1.31 + echo " ML_SYSTEM=\"$ML_SYSTEM\""
1.32 + echo " ML_OPTIONS=\"$ML_OPTIONS\""
1.33 + echo
1.34 + exit 1
1.35 +}
1.36 +
1.37 +function fail()
1.38 +{
1.39 + echo "$1" >&2
1.40 + exit 2
1.41 +}
1.42 +
1.43 +
1.44 +## process command line
1.45 +
1.46 +ALL_SESSIONS=false
1.47 +BUILD_IMAGES=false
1.48 +LIST_ONLY=false
1.49 +
1.50 +eval "declare -a BUILD_OPTIONS=($ISABELLE_BUILD_OPTIONS)"
1.51 +
1.52 +while getopts "ablo:" OPT
1.53 +do
1.54 + case "$OPT" in
1.55 + a)
1.56 + ALL_SESSIONS="true"
1.57 + ;;
1.58 + b)
1.59 + BUILD_IMAGES="true"
1.60 + ;;
1.61 + l)
1.62 + LIST_ONLY="true"
1.63 + ;;
1.64 + o)
1.65 + BUILD_OPTIONS["${#BUILD_OPTIONS[@]}"]="$OPTARG"
1.66 + ;;
1.67 + \?)
1.68 + usage
1.69 + ;;
1.70 + esac
1.71 +done
1.72 +
1.73 +shift $(($OPTIND - 1))
1.74 +
1.75 +
1.76 +## main
1.77 +
1.78 +[ -e "$ISABELLE_HOME/Admin/build" ] && { "$ISABELLE_HOME/Admin/build" jars || exit $?; }
1.79 +
1.80 +exec "$ISABELLE_TOOL" java isabelle.Build \
1.81 + "$ALL_SESSIONS" "$BUILD_IMAGES" "$LIST_ONLY" "${BUILD_OPTIONS[@]}" $'\n' "$@"