author | Walther Neuper <wneuper@ist.tugraz.at> |
Tue, 07 Feb 2017 08:57:42 +0100 | |
changeset 59316 | 3a60188d9cc3 |
parent 59180 | 85ec71012df8 |
permissions | -rwxr-xr-x |
wneuper@59180 | 1 |
#!/usr/bin/env bash |
wneuper@59180 | 2 |
# |
wneuper@59180 | 3 |
# Administrative build for Isabelle source distribution. |
wneuper@59180 | 4 |
|
wneuper@59180 | 5 |
## directory layout |
wneuper@59180 | 6 |
|
wneuper@59180 | 7 |
if [ -z "$ISABELLE_HOME" ]; then |
wneuper@59180 | 8 |
ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" |
wneuper@59180 | 9 |
ISABELLE_TOOL="$ISABELLE_HOME/bin/isabelle" |
wneuper@59180 | 10 |
fi |
wneuper@59180 | 11 |
|
wneuper@59180 | 12 |
|
wneuper@59180 | 13 |
## diagnostics |
wneuper@59180 | 14 |
|
wneuper@59180 | 15 |
PRG="$(basename "$0")" |
wneuper@59180 | 16 |
|
wneuper@59180 | 17 |
function usage() |
wneuper@59180 | 18 |
{ |
wneuper@59180 | 19 |
cat <<EOF |
wneuper@59180 | 20 |
|
wneuper@59180 | 21 |
Usage: $PRG [MODULES] |
wneuper@59180 | 22 |
|
wneuper@59180 | 23 |
Produce Isabelle distribution modules from current repository sources. |
wneuper@59180 | 24 |
The MODULES list may contain any of the following: |
wneuper@59180 | 25 |
|
wneuper@59180 | 26 |
all all modules below |
wneuper@59180 | 27 |
browser graph browser |
wneuper@59180 | 28 |
jars Isabelle/Scala |
wneuper@59180 | 29 |
jars_test test separate build of jars |
wneuper@59180 | 30 |
jars_fresh fresh build of jars |
wneuper@59180 | 31 |
|
wneuper@59180 | 32 |
EOF |
wneuper@59180 | 33 |
exit 1 |
wneuper@59180 | 34 |
} |
wneuper@59180 | 35 |
|
wneuper@59180 | 36 |
function fail() |
wneuper@59180 | 37 |
{ |
wneuper@59180 | 38 |
echo "$1" >&2 |
wneuper@59180 | 39 |
exit 2 |
wneuper@59180 | 40 |
} |
wneuper@59180 | 41 |
|
wneuper@59180 | 42 |
|
wneuper@59180 | 43 |
## process command line |
wneuper@59180 | 44 |
|
wneuper@59180 | 45 |
[ "$#" -eq 0 ] && usage |
wneuper@59180 | 46 |
|
wneuper@59180 | 47 |
MODULES="$@"; shift "$#" |
wneuper@59180 | 48 |
|
wneuper@59180 | 49 |
|
wneuper@59180 | 50 |
## modules |
wneuper@59180 | 51 |
|
wneuper@59180 | 52 |
function build_all () |
wneuper@59180 | 53 |
{ |
wneuper@59180 | 54 |
build_browser |
wneuper@59180 | 55 |
build_jars |
wneuper@59180 | 56 |
} |
wneuper@59180 | 57 |
|
wneuper@59180 | 58 |
|
wneuper@59180 | 59 |
function build_browser () |
wneuper@59180 | 60 |
{ |
wneuper@59180 | 61 |
pushd "$ISABELLE_HOME/lib/browser" >/dev/null |
wneuper@59180 | 62 |
"$ISABELLE_TOOL" env ./build || exit $? |
wneuper@59180 | 63 |
popd >/dev/null |
wneuper@59180 | 64 |
} |
wneuper@59180 | 65 |
|
wneuper@59180 | 66 |
|
wneuper@59180 | 67 |
function build_jars () |
wneuper@59180 | 68 |
{ |
wneuper@59180 | 69 |
pushd "$ISABELLE_HOME/src/Pure" >/dev/null |
wneuper@59180 | 70 |
"$ISABELLE_TOOL" env ./build-jars "$@" || exit $? |
wneuper@59180 | 71 |
popd >/dev/null |
wneuper@59180 | 72 |
} |
wneuper@59180 | 73 |
|
wneuper@59180 | 74 |
|
wneuper@59180 | 75 |
## main |
wneuper@59180 | 76 |
|
wneuper@59180 | 77 |
#FIXME workarounds for scalac 2.11.0 |
wneuper@59180 | 78 |
export CYGWIN="nodosfilewarning" |
wneuper@59180 | 79 |
function stty() { :; } |
wneuper@59180 | 80 |
export -f stty |
wneuper@59180 | 81 |
|
wneuper@59180 | 82 |
for MODULE in $MODULES |
wneuper@59180 | 83 |
do |
wneuper@59180 | 84 |
case $MODULE in |
wneuper@59180 | 85 |
all) build_all;; |
wneuper@59180 | 86 |
browser) build_browser;; |
wneuper@59180 | 87 |
jars) build_jars;; |
wneuper@59180 | 88 |
jars_fresh) build_jars -f;; |
wneuper@59180 | 89 |
jars_test) build_jars -t;; |
wneuper@59180 | 90 |
*) fail "Bad module $MODULE" |
wneuper@59180 | 91 |
esac |
wneuper@59180 | 92 |
done |