5 # makedist -- make Isabelle source distribution.
10 LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents TFL ZF"
14 export CVSROOT=/usr/proj/isabelle-repository/archive
17 export CVSROOT=sunbroy1.informatik.tu-muenchen.de:/usr/proj/isabelle-repository/archive
21 DISTPREFIX=~/tmp/isadist
26 type -path gtar >/dev/null && TAR=gtar
29 type -path gfind >/dev/null && FIND=gfind
35 THIS=$(cd $(dirname "$0"); echo "$PWD")
40 echo "### Usage: $PRG VERSION"
43 Make Isabelle distribution from the master sources at TUM.
45 VERSION may be either a tag like "Isabelle99-XX" that specifies the
46 release to be exported from the repository, or "-" to checkout the
47 current sources as an unofficial release, or "--" to produce a
48 tentative release from the present copy of the Isabelle repository.
50 Checklist for official releases (before running this script):
52 * Check release name and date in NEWS!
53 * Check that README files are up to date (should have Id: lines).
54 * Check Admin/index.html.
56 #Wicked! We just won't tell other users ...
57 if [ $LOGNAME = paulson -o $LOGNAME = nipkow -o $LOGNAME = wenzelm -o $LOGNAME = berghofe ]; then
59 * Tag the current repository version, e.g.:
60 cvs -d /usr/proj/isabelle-repository/archive rtag Isabelle99-X isabelle
61 PLEASE DON'T DO THIS UNLESS YOU KNOW WHAT YOU'RE DOING!
66 After the distribution has been created succesfully, you might want
67 to run some makeall tests using different ML systems.
80 ## process command line
82 [ "$#" -ne 1 ] && usage
92 DATE=$(date "+%d-%b-%Y")
93 DISTDATE=$(date "+%B %Y")
95 if [ "$VERSION" = "--" ]; then
96 DISTNAME="Isabelle_$DATE"
97 DISTVERSION="$DISTNAME"
98 EXPORT="$THIS/cvs-copy $THIS/.. $DISTNAME"
99 UNOFFICIAL="unofficial test"
100 elif [ "$VERSION" = "-" ]; then
101 DISTNAME="Isabelle_$DATE"
102 DISTVERSION="$DISTNAME"
103 EXPORT="cvs -f -q checkout -P -d $DISTNAME isabelle"
104 UNOFFICIAL="unofficial"
107 DISTVERSION="$DISTNAME: $DISTDATE"
108 EXPORT="cvs -f -q export -r $VERSION -d $DISTNAME isabelle"
112 DISTBASE="$DISTPREFIX/dist-$DISTNAME"
113 mkdir -p "$DISTBASE" || fail "Unable to create distribution base dir $DISTBASE!"
114 [ -e "$DISTBASE/$DISTNAME" ] && fail "$DISTBASE/$DISTNAME already exists!"
115 [ -e "$DISTBASE/pdf/$DISTNAME" ] && fail "$DISTBASE/pdf/$DISTNAME already exists!"
121 echo "### Exporting $DISTNAME ..."
127 $FIND . -name CVS -print | xargs rm -rf
128 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
129 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
130 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
136 echo "### Building docs ..."
139 cd "$DISTBASE/$DISTNAME/Doc"
140 PDFLATEX=$(type -path pdflatex)
142 for DOC in $(cat Contents)
146 [ -n "$PDFLATEX" ] && make clean pdf
151 # prepare dist dir for release
154 echo "### Preparing distribution ..."
157 cd "$DISTBASE/$DISTNAME"
160 cp Distribution/doc/Contents ../page
161 cp Distribution/lib/logo/isabelle.gif ../page/main-content
162 cp Distribution/lib/logo/isabelle.gif ../page/dist-content
163 echo "$DISTNAME" > ../page/DISTNAME
165 MOVE=$($FIND Doc \( -type f -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
166 mv -f $MOVE Distribution/doc
167 rm Distribution/doc/Isa-logics.eps
176 ( cd lib/browser; make; )
178 cp doc/isabelle*.eps lib/logo
181 if [ -n "$UNOFFICIAL" ]; then
184 echo "IMPORTANT NOTE"
185 echo "=============="
187 echo "This is an $UNOFFICIAL release of Isabelle, created by $LOGNAME $DATE."
192 perl -pi -e "s/{ISABELLE}/$DISTNAME/g;" lib/html/index.html
193 perl -pi -e "s/Isabelle repository version/$DISTVERSION/" src/Pure/ROOT.ML
194 perl -pi -e "s/the internal repository version of Isabelle/$DISTVERSION/" README.html
195 lynx -dump README.html >README
197 ( cd src; ../Admin/maketags; )
199 ( env BASH_PATH=/bin/bash PERL_PATH=/usr/bin/perl ./configure )
207 echo "### Creating archives ..."
212 echo "$DISTBASE/$DISTNAME.tar.gz" > ../ISABELLE_DIST
215 ln -s "$DISTNAME" Isabelle
217 chown -R "$LOGNAME" "$DISTNAME"
218 chmod -R u+w "$DISTNAME"
219 chmod -R g=o "$DISTNAME"
220 chgrp -R isabelle "$DISTNAME" Isabelle
222 mkdir -p "pdf/$DISTNAME/doc"
223 mv "$DISTNAME/doc/"*.pdf "pdf/$DISTNAME/doc"
225 page/bin/mkcontents "$DISTNAME/doc/Contents" "pdf/$DISTNAME/doc/index"
226 cat > "pdf/$DISTNAME/doc/index.html" <<EOF
229 <title>$DISTNAME Documentation</title>
232 <h1>$DISTNAME Documentation</h1>
233 $(cat "pdf/$DISTNAME/doc/index")
237 rm "pdf/$DISTNAME/doc/index"
239 echo "$DISTNAME.tar.gz"
240 "$TAR" cf "$DISTNAME.tar" Isabelle "$DISTNAME"
243 echo "${DISTNAME}_pdf.tar.gz"
244 ( cd pdf; "$TAR" cf "../${DISTNAME}_pdf.tar" "$DISTNAME"; )
245 gzip "${DISTNAME}_pdf.tar"
247 mv "pdf/$DISTNAME/doc/"*.pdf "pdf/$DISTNAME/doc/index.html" "$DISTNAME/doc"
248 rmdir "pdf/$DISTNAME/doc" "pdf/$DISTNAME" pdf
253 mv "$DISTNAME" "${DISTNAME}-old"
256 mv "${DISTNAME}-old/README.html" "${DISTNAME}-old/INSTALL" "${DISTNAME}-old/NEWS" "${DISTNAME}-old/ANNOUNCE" "$DISTNAME"
257 mkdir "$DISTNAME/doc"
258 mv "${DISTNAME}-old/doc/"*.pdf "${DISTNAME}-old/doc/index.html" "$DISTNAME/doc"
260 chgrp -R isabelle "$DISTNAME"
262 rm -rf "${DISTNAME}-old"
268 echo "### Finished makedist."