| author | nipkow | 
| Mon, 26 Mar 2012 21:00:39 +0200 | |
| changeset 47132 | bef6bc52a32e | 
| parent 47115 | 1a05adae1cc9 | 
| child 47408 | 63c05991882e | 
| 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 | |
| 46933 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 26 | all all modules below *except* doc-src | 
| 27628 
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) | 
| 46933 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 29 | doc-src documentation sources from Isabelle theories | 
| 47115 
1a05adae1cc9
more robust command invocation via ISABELLE_JDK_HOME or SCALA_HOME (NB: bash exec requires genuine executable, not function);
 wenzelm parents: 
46933diff
changeset | 30 | jars Isabelle/Scala layer (requires \$ISABELLE_JDK_HOME and \$SCALA_HOME) | 
| 43280 | 31 | jars_fresh fresh build of jars | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 32 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 33 | EOF | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 34 | exit 1 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 35 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 36 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 37 | function fail() | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 38 | {
 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 39 | echo "$1" >&2 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 40 | exit 2 | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 41 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 42 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 43 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 44 | ## process command line | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 45 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 46 | [ "$#" -eq 0 ] && usage | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 47 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 48 | MODULES="$@"; shift "$#" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 49 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 50 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 51 | ## modules | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 52 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 53 | function build_all () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 54 | {
 | 
| 27649 | 55 | build_doc | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 56 | build_browser | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 57 | build_jars | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 58 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 59 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 60 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 61 | function build_browser () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 62 | {
 | 
| 34283 
7911e83d06c0
simplified build/bootstrap of graph browser -- avoid make;
 wenzelm parents: 
34282diff
changeset | 63 | pushd "$ISABELLE_HOME/lib/browser" >/dev/null | 
| 34297 | 64 | "$ISABELLE_TOOL" env ./build || exit $? | 
| 34283 
7911e83d06c0
simplified build/bootstrap of graph browser -- avoid make;
 wenzelm parents: 
34282diff
changeset | 65 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 66 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 67 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 68 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 69 | function build_doc () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 70 | {
 | 
| 
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 | echo "### Building documentation ..." | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 73 | echo "###" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 74 | |
| 28956 | 75 | cd "$ISABELLE_HOME/doc-src" | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 76 | for DOC in $(cat Dirs) | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 77 | do | 
| 27629 | 78 | pushd "$DOC" >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 79 | make clean dvi || fail "DVI document for $DOC failed!" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 80 | make clean pdf || fail "PDF document for $DOC failed!" | 
| 27629 | 81 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 82 | done | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 83 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 84 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 85 | |
| 46933 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 86 | function build_doc-src () | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 87 | {
 | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 88 | echo "###" | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 89 | echo "### Building documentation sources..." | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 90 | echo "###" | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 91 | |
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 92 | cd "$ISABELLE_HOME/doc-src" | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 93 | for DOC in $(cat Dirs) | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 94 | do | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 95 | pushd "$DOC" >/dev/null | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 96 | if [[ -f "IsaMakefile" ]] | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 97 | then | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 98 | "$ISABELLE_TOOL" make || exit $? | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 99 | fi | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 100 | popd >/dev/null | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 101 | done | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 102 | } | 
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 103 | |
| 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 104 | |
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 105 | function build_jars () | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 106 | {
 | 
| 28956 | 107 | pushd "$ISABELLE_HOME/src/Pure" >/dev/null | 
| 43280 | 108 | "$ISABELLE_TOOL" env ./build-jars "$@" || exit $? | 
| 27904 | 109 | popd >/dev/null | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 110 | } | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 111 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 112 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 113 | ## main | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 114 | |
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 115 | for MODULE in $MODULES | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 116 | do | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 117 | case $MODULE in | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 118 | all) build_all;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 119 | browser) build_browser;; | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 120 | doc) build_doc;; | 
| 46933 
3b02b0ef8d48
doc-src build option (for emerging mira configuration)
 haftmann parents: 
45385diff
changeset | 121 | doc-src) build_doc-src;; | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 122 | jars) build_jars;; | 
| 43280 | 123 | jars_fresh) build_jars -f;; | 
| 27628 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 124 | *) fail "Bad module $MODULE" | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 125 | esac | 
| 
901656b3205d
Administrative build -- finish Isabelle source distribution.
 wenzelm parents: diff
changeset | 126 | done |