3 # makebin -- make Isabelle logic images for current platform
8 TMP="/var/tmp/isabelle-makebin$$"
10 export THIS_IS_ISABELLE_MAKEBIN=true
20 echo "Usage: $PRG [OPTIONS] ARCHIVE"
23 echo " -l produce library"
26 echo " Precompile Isabelle for the current platform."
38 ## process command line
45 while getopts "ln" OPT
60 shift $(($OPTIND - 1))
65 [ "$#" -gt 1 ] && usage
72 [ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
73 ARCHIVE_BASE="$(basename "$ARCHIVE")"
74 ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
75 ARCHIVE_FULL="$ARCHIVE_DIR/$ARCHIVE_BASE"
77 ISABELLE_NAME="$(basename "$ARCHIVE_BASE" .tar.gz)"
78 ISABELLE_HOME="$TMP/$ISABELLE_NAME"
83 mkdir "$TMP" || fail "Cannot create directory $TMP"
86 tar xzf "$ARCHIVE_FULL"
90 -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1 -p 1":;' \
93 if [ -n "$DO_LIBRARY" ]; then
94 perl -pi -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1 -p 1 -i true -d pdf -V outline=/proof,/ML":;' \
98 ISABELLE_HOME_USER=$(./bin/isabelle getenv -b ISABELLE_HOME_USER)
99 [ -f "$ISABELLE_HOME_USER/etc/settings" ] && \
100 echo "### WARNING! Personal Isabelle settings present. " >&2
102 COMPILER=$(./bin/isabelle getenv -b ML_IDENTIFIER)
103 PLATFORM=$(./bin/isabelle getenv -b ML_PLATFORM)
105 if [ -n "$DRY_RUN" ]; then
106 mkdir -p "heaps/$COMPILER/log"
107 touch "heaps/$COMPILER/HOL"
108 touch "heaps/$COMPILER/log/HOL.gz"
109 touch "heaps/$COMPILER/HOL-Nominal"
110 touch "heaps/$COMPILER/log/HOL-Nominal.gz"
111 touch "heaps/$COMPILER/HOLCF"
112 touch "heaps/$COMPILER/log/HOLCF.gz"
113 touch "heaps/$COMPILER/ZF"
114 touch "heaps/$COMPILER/log/ZF.gz"
116 elif [ -n "$DO_LIBRARY" ]; then
119 ./build -b -m HOL-Nominal HOL
122 rm -f "heaps/$COMPILER/Pure" "heaps/$COMPILER/FOL"
131 chgrp -R isabelle "$TMP"
133 if [ -n "$DO_LIBRARY" ]; then
134 tar cf "${ISABELLE_NAME}_library.tar" $ISABELLE_NAME/browser_info && \
135 gzip -f "${ISABELLE_NAME}_library.tar"
136 cp -f "${ISABELLE_NAME}_library.tar.gz" "$ARCHIVE_DIR"
138 for IMG in HOL HOL-Nominal HOLCF ZF
140 tar cf "${IMG}_$PLATFORM.tar" \
141 "$ISABELLE_NAME/heaps/$COMPILER/$IMG" \
142 "$ISABELLE_NAME/heaps/$COMPILER/log/$IMG.gz"
143 gzip -f "${IMG}_$PLATFORM.tar"
144 cp -f "${IMG}_$PLATFORM.tar.gz" "$ARCHIVE_DIR"