Admin/Release/build_library
changeset 64316 96fef7745c68
parent 64315 e48e2532ac17
child 64317 029e6247210e
equal deleted inserted replaced
64315:e48e2532ac17 64316:96fef7745c68
     1 #!/usr/bin/env bash
       
     2 #
       
     3 # build Isabelle HTML library from platform bundle
       
     4 
       
     5 ## diagnostics
       
     6 
       
     7 PRG=$(basename "$0")
       
     8 
       
     9 function usage()
       
    10 {
       
    11   echo
       
    12   echo "Usage: $PRG [OPTIONS] ARCHIVE"
       
    13   echo
       
    14   echo "  Options are:"
       
    15   echo "    -j INT       maximum number of parallel jobs (default 1)"
       
    16   echo
       
    17   echo "  Build Isabelle HTML library from platform bundle."
       
    18   echo
       
    19   exit 1
       
    20 }
       
    21 
       
    22 function fail()
       
    23 {
       
    24   echo "$1" >&2
       
    25   exit 2
       
    26 }
       
    27 
       
    28 
       
    29 ## process command line
       
    30 
       
    31 # options
       
    32 
       
    33 JOBS=""
       
    34 
       
    35 while getopts "j:" OPT
       
    36 do
       
    37   case "$OPT" in
       
    38     j)
       
    39       JOBS="-j $OPTARG"
       
    40       ;;
       
    41     \?)
       
    42       usage
       
    43       ;;
       
    44   esac
       
    45 done
       
    46 
       
    47 shift $(($OPTIND - 1))
       
    48 
       
    49 
       
    50 # args
       
    51 
       
    52 [ "$#" -ne 1 ] && usage
       
    53 
       
    54 ARCHIVE="$1"; shift
       
    55 
       
    56 [ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
       
    57 ARCHIVE_BASE="$(basename "$ARCHIVE")"
       
    58 ARCHIVE_DIR="$(cd "$(dirname "$ARCHIVE")"; echo "$PWD")"
       
    59 ARCHIVE_FULL="$ARCHIVE_DIR/$ARCHIVE_BASE"
       
    60 
       
    61 
       
    62 ## main
       
    63 
       
    64 #GNU tar (notably on Mac OS X)
       
    65 type -p gnutar >/dev/null && function tar() { gnutar "$@"; }
       
    66 
       
    67 TMP="/var/tmp/isabelle-makedist$$"
       
    68 mkdir "$TMP" || fail "Cannot create directory: \"$TMP\""
       
    69 
       
    70 cd "$TMP"
       
    71 tar -x -z -f "$ARCHIVE_FULL"
       
    72 
       
    73 cd *
       
    74 ISABELLE_NAME="$(basename "$PWD")"
       
    75 
       
    76 env ISABELLE_IDENTIFIER="${ISABELLE_NAME}-build" \
       
    77   ./bin/isabelle build $JOBS -s -c -a -d '~~/src/Benchmarks' -o browser_info \
       
    78     -o "document=pdf" -o "document_variants=document:outline=/proof,/ML"
       
    79 RC="$?"
       
    80 
       
    81 cd ..
       
    82 
       
    83 if [ "$RC" = 0 ]; then
       
    84   chmod -R a+r "$ISABELLE_NAME"
       
    85   chmod -R g=o "$ISABELLE_NAME"
       
    86   tar -c -z -f "$ARCHIVE_DIR/${ISABELLE_NAME}_library.tar.gz" "$ISABELLE_NAME/browser_info"
       
    87 fi
       
    88 
       
    89 # clean up
       
    90 cd /tmp
       
    91 rm -rf "$TMP"
       
    92 
       
    93 exit "$RC"