wenzelm@27628: #!/usr/bin/env bash wenzelm@27628: # wenzelm@27629: # Administrative build for Isabelle source distribution. wenzelm@27628: wenzelm@27628: ## directory layout wenzelm@27628: wenzelm@34282: if [ -z "$ISABELLE_HOME" ]; then wenzelm@34282: ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" wenzelm@34282: ISABELLE_TOOL="$ISABELLE_HOME/bin/isabelle" wenzelm@34282: fi wenzelm@27628: wenzelm@27628: wenzelm@27628: ## diagnostics wenzelm@27628: wenzelm@27628: PRG="$(basename "$0")" wenzelm@27628: wenzelm@27628: function usage() wenzelm@27628: { wenzelm@27628: cat <&2 wenzelm@27628: exit 2 wenzelm@27628: } wenzelm@27628: wenzelm@27628: wenzelm@27628: ## process command line wenzelm@27628: wenzelm@27628: [ "$#" -eq 0 ] && usage wenzelm@27628: wenzelm@27628: MODULES="$@"; shift "$#" wenzelm@27628: wenzelm@27628: wenzelm@27628: ## modules wenzelm@27628: wenzelm@27628: function build_all () wenzelm@27628: { wenzelm@27649: build_doc wenzelm@27628: build_browser wenzelm@27628: build_jars wenzelm@27628: } wenzelm@27628: wenzelm@27628: wenzelm@27628: function build_browser () wenzelm@27628: { wenzelm@34283: pushd "$ISABELLE_HOME/lib/browser" >/dev/null wenzelm@34297: "$ISABELLE_TOOL" env ./build || exit $? wenzelm@34283: popd >/dev/null wenzelm@27628: } wenzelm@27628: wenzelm@27628: wenzelm@27628: function build_doc () wenzelm@27628: { wenzelm@27628: echo "###" wenzelm@27628: echo "### Building documentation ..." wenzelm@27628: echo "###" wenzelm@27628: wenzelm@28956: cd "$ISABELLE_HOME/doc-src" wenzelm@27628: for DOC in $(cat Dirs) wenzelm@27628: do wenzelm@27629: pushd "$DOC" >/dev/null wenzelm@27628: make clean dvi || fail "DVI document for $DOC failed!" wenzelm@27628: make clean pdf || fail "PDF document for $DOC failed!" wenzelm@27629: popd >/dev/null wenzelm@27628: done wenzelm@27628: } wenzelm@27628: wenzelm@27628: wenzelm@27628: function build_jars () wenzelm@27628: { wenzelm@44401: "$ISABELLE_HOME/lib/scripts/java_ext_dirs" >/dev/null wenzelm@28956: pushd "$ISABELLE_HOME/src/Pure" >/dev/null wenzelm@44160: "$ISABELLE_TOOL" env ./build-jars "$@" || exit $? wenzelm@27904: popd >/dev/null wenzelm@27628: } wenzelm@27628: wenzelm@27628: wenzelm@27628: ## main wenzelm@27628: wenzelm@27628: for MODULE in $MODULES wenzelm@27628: do wenzelm@27628: case $MODULE in wenzelm@27628: all) build_all;; wenzelm@27628: browser) build_browser;; wenzelm@27628: doc) build_doc;; wenzelm@27628: jars) build_jars;; wenzelm@44160: jars_fresh) build_jars -f;; wenzelm@27628: *) fail "Bad module $MODULE" wenzelm@27628: esac wenzelm@27628: done