5 # DESCRIPTION: build and manage Isabelle sessions
10 PRG="$(basename "$0")"
15 echo "Usage: isabelle $PRG [OPTIONS] [SESSIONS ...]"
18 echo " -a all sessions"
19 echo " -b build target images"
20 echo " -d DIR additional session directory with ROOT file"
21 echo " -j INT maximum number of jobs (default 1)"
22 echo " -l list sessions only"
23 echo " -o OPTION override session configuration OPTION (via NAME=VAL or NAME)"
26 echo " Build and manage Isabelle sessions, depending on implicit"
27 echo " ISABELLE_BUILD_OPTIONS=\"$ISABELLE_BUILD_OPTIONS\""
29 echo " ML_PLATFORM=\"$ML_PLATFORM\""
30 echo " ML_HOME=\"$ML_HOME\""
31 echo " ML_SYSTEM=\"$ML_SYSTEM\""
32 echo " ML_OPTIONS=\"$ML_OPTIONS\""
43 function check_number()
45 [ -n "$1" -a -z "$(echo "$1" | tr -d '[0-9]')" ] || fail "Bad number: \"$1\""
49 ## process command line
57 declare -a MORE_DIRS=()
58 eval "declare -a BUILD_OPTIONS=($ISABELLE_BUILD_OPTIONS)"
60 while getopts "abd:j:lo:v" OPT
70 MORE_DIRS["${#MORE_DIRS[@]}"]="$OPTARG"
73 check_number "$OPTARG"
80 BUILD_OPTIONS["${#BUILD_OPTIONS[@]}"]="$OPTARG"
91 shift $(($OPTIND - 1))
96 [ -e "$ISABELLE_HOME/Admin/build" ] && { "$ISABELLE_HOME/Admin/build" jars || exit $?; }
98 exec "$ISABELLE_TOOL" java isabelle.Build \
99 "$ALL_SESSIONS" "$BUILD_IMAGES" "$MAX_JOBS" "$LIST_ONLY" "$VERBOSE" \
100 "${MORE_DIRS[@]}" $'\n' "${BUILD_OPTIONS[@]}" $'\n' "$@"