5 # makebin -- make Isabelle logic images for current platform.
10 DISTBASE=~/tmp/isadist
11 TMP="/var/tmp/isabelle-makebin$$"
14 type -path gtar >/dev/null && TAR=gtar
16 export THIS_IS_ISABELLE_BUILD=true
26 echo "Usage: $PRG [OPTIONS] ARCHIVE"
29 echo " -l produce library"
32 echo " Precompile Isabelle for the current platform."
44 ## process command line
51 while getopts "ln" OPT
66 shift $(($OPTIND - 1))
71 [ "$#" -gt 1 ] && usage
78 [ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
79 ARCHIVE_BASE=$(basename "$ARCHIVE")
80 ARCHIVE_DIR=$(cd $(dirname "$ARCHIVE"); echo "$PWD")
81 ARCHIVE_FULL="$ARCHIVE_DIR/$ARCHIVE_BASE"
83 ISABELLE_NAME=$(basename "$ARCHIVE_BASE" .tar.gz)
84 ISABELLE_HOME="$TMP/$ISABELLE_NAME"
89 mkdir "$TMP" || fail "Cannot create directory $TMP"
92 "$TAR" xzf "$ARCHIVE_FULL"
95 # FIXME: ugly hack to get proper HOL4 image
96 # needs HOL4 proof terms installed in ~/isabelle/proofs
97 # desperately needs fix for next release!
98 cat > src/HOL/Import/HOL/ROOT.ML <<EOF
99 with_path ".." use_thy "HOL4Compat";
100 with_path ".." use_thy "HOL4Syntax";
106 -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-p 1":;' \
107 -e 's:^HOL_USEDIR_OPTIONS=.*$:HOL_USEDIR_OPTIONS="-p 2":;' \
110 if [ -n "$DO_LIBRARY" ]; then
111 perl -pi -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-p 1 -i true -d pdf -V outline=/proof,/ML":;' \
115 ISABELLE_HOME_USER=$(./bin/isatool getenv -b ISABELLE_HOME_USER)
116 [ -f "$ISABELLE_HOME_USER/etc/settings" ] && \
117 echo "### WARNING! Personal Isabelle settings present. " >&2
119 COMPILER=$(./bin/isatool getenv -b ML_IDENTIFIER)
120 PLATFORM=$(./bin/isatool getenv -b ML_PLATFORM)
122 if [ -n "$DRY_RUN" ]; then
123 mkdir -p "heaps/$COMPILER/log"
124 touch "heaps/$COMPILER/HOL"
125 touch "heaps/$COMPILER/log/HOL.gz"
126 touch "heaps/$COMPILER/HOL-Complex"
127 touch "heaps/$COMPILER/log/HOL-Complex.gz"
128 touch "heaps/$COMPILER/HOL4"
129 touch "heaps/$COMPILER/log/HOL4.gz"
130 touch "heaps/$COMPILER/ZF"
131 touch "heaps/$COMPILER/log/ZF.gz"
133 elif [ -n "$DO_LIBRARY" ]; then
136 ./build -b -m HOL-Complex HOL
137 ./build -b -m HOL4 HOL
139 rm -f "heaps/$COMPILER/Pure" "heaps/$COMPILER/FOL"
148 chgrp -R isabelle "$TMP"
150 if [ -n "$DO_LIBRARY" ]; then
151 "$TAR" cf "${ISABELLE_NAME}_library.tar" $ISABELLE_NAME/browser_info && \
152 gzip -f "${ISABELLE_NAME}_library.tar"
153 cp -f "${ISABELLE_NAME}_library.tar.gz" "$ARCHIVE_DIR"
155 for IMG in HOL HOL-Complex HOL4 ZF
157 "$TAR" cf "${IMG}_$PLATFORM.tar" \
158 "$ISABELLE_NAME/heaps/$COMPILER/$IMG" \
159 "$ISABELLE_NAME/heaps/$COMPILER/log/$IMG.gz"
160 gzip -f "${IMG}_$PLATFORM.tar"
161 cp -f "${IMG}_$PLATFORM.tar.gz" "$ARCHIVE_DIR"