| author | haftmann | 
| Fri, 24 Sep 2010 14:03:44 +0200 | |
| changeset 39678 | d9fb92a8c80a | 
| parent 34876 | b52e03f68cc3 | 
| child 43280 | e5dd0ae1b054 | 
| permissions | -rwxr-xr-x | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 1 | #!/usr/bin/env bash | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 2 | # | 
| 27629 | 3 | # Administrative build for Isabelle source distribution. | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 4 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 5 | ## directory layout | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 6 | |
| 34282 
549969a7f582
simplified build/bootstrap of Isabelle/Scala components -- avoid make;
 wenzelm parents: 
31831diff
changeset | 7 | if [ -z "$ISABELLE_HOME" ]; then | 
| 
549969a7f582
simplified build/bootstrap of Isabelle/Scala components -- avoid make;
 wenzelm parents: 
31831diff
changeset | 8 | ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" | 
| 
549969a7f582
simplified build/bootstrap of Isabelle/Scala components -- avoid make;
 wenzelm parents: 
31831diff
changeset | 9 | ISABELLE_TOOL="$ISABELLE_HOME/bin/isabelle" | 
| 
549969a7f582
simplified build/bootstrap of Isabelle/Scala components -- avoid make;
 wenzelm parents: 
31831diff
changeset | 10 | fi | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 11 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 12 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 13 | ## diagnostics | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 14 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 15 | PRG="$(basename "$0")" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 16 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 17 | function usage() | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 18 | {
 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 19 | cat <<EOF | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 20 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 21 | Usage: $PRG [MODULES] | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 22 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 23 | Produce Isabelle distribution modules from current repository sources. | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 24 | The MODULES list may contain any of the following: | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 25 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 26 | all all modules below | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 27 | browser graph browser (requires jdk) | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 28 | doc documentation (requires latex and rail) | 
| 34876 | 29 | jars Isabelle/Scala layer (requires Scala in \$SCALA_HOME) | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 30 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 31 | EOF | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 32 | exit 1 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 33 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 34 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 35 | function fail() | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 36 | {
 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 37 | echo "$1" >&2 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 38 | exit 2 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 39 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 40 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 41 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 42 | ## process command line | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 43 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 44 | [ "$#" -eq 0 ] && usage | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 45 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 46 | MODULES="$@"; shift "$#" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 47 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 48 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 49 | ## modules | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 50 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 51 | function build_all () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 52 | {
 | 
| 27649 | 53 | build_doc | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 54 | build_browser | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 55 | build_jars | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 56 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 57 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 58 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 59 | function build_browser () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 60 | {
 | 
| 34283 
7911e83d06c0
simplified build/bootstrap of graph browser -- avoid make;
 wenzelm parents: 
34282diff
changeset | 61 | pushd "$ISABELLE_HOME/lib/browser" >/dev/null | 
| 34297 | 62 | "$ISABELLE_TOOL" env ./build || exit $? | 
| 34283 
7911e83d06c0
simplified build/bootstrap of graph browser -- avoid make;
 wenzelm parents: 
34282diff
changeset | 63 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 64 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 65 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 66 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 67 | function build_doc () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 68 | {
 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 69 | echo "###" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 70 | echo "### Building documentation ..." | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 71 | echo "###" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 72 | |
| 28956 | 73 | cd "$ISABELLE_HOME/doc-src" | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 74 | for DOC in $(cat Dirs) | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 75 | do | 
| 27629 | 76 | pushd "$DOC" >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 77 | make clean dvi || fail "DVI document for $DOC failed!" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 78 | make clean pdf || fail "PDF document for $DOC failed!" | 
| 27629 | 79 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 80 | done | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 81 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 82 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 83 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 84 | function build_jars () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 85 | {
 | 
| 28956 | 86 | pushd "$ISABELLE_HOME/src/Pure" >/dev/null | 
| 34297 | 87 | "$ISABELLE_TOOL" env ./build-jars || exit $? | 
| 27904 | 88 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 89 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 90 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 91 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 92 | ## main | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 93 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 94 | for MODULE in $MODULES | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 95 | do | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 96 | case $MODULE in | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 97 | all) build_all;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 98 | browser) build_browser;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 99 | doc) build_doc;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 100 | jars) build_jars;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 101 | *) fail "Bad module $MODULE" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 102 | esac | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 103 | done |