5 # makedist -- make Isabelle distribution.
10 LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents TFL ZF"
12 export CVSROOT=/usr/proj/isabelle-repository/archive
13 DISTPREFIX=~/tmp/isadist
18 type -path gtar >/dev/null && TAR=gtar
21 type -path gfind >/dev/null && FIND=gfind
27 THIS=$(cd $(dirname "$0"); echo "$PWD")
32 echo "### Usage: $PRG VERSION"
35 Make Isabelle distribution from the master sources at TUM.
37 VERSION may be either a tag like "Isabelle99-XX" that specifies the
38 release to be exported from the repository, or "-" to checkout the
39 current sources as an unofficial release, or "--" to produce a
40 tentative release from the present copy of the Isabelle repository.
42 Checklist for official releases (before running this script):
44 * Check release name and date in NEWS!
45 * Check that README files are up to date (should have Id: lines).
46 * Check Admin/index.html.
48 #Wicked! We just won't tell other users ...
49 if [ $LOGNAME = paulson -o $LOGNAME = nipkow -o $LOGNAME = wenzelm -o $LOGNAME = berghofe ]; then
51 * Tag the current repository version, e.g.:
52 cvs -d $CVSROOT rtag Isabelle99-XX isabelle
53 PLEASE DON'T DO THIS UNLESS YOU KNOW WHAT YOU'RE DOING!
58 After the distribution has been created succesfully, you might want
59 to run some makeall tests using different ML systems.
72 ## process command line
74 [ "$#" -ne 1 ] && usage
84 DATE=$(date "+%d-%b-%Y")
85 DISTDATE=$(date "+%B %Y")
87 if [ "$VERSION" = "--" ]; then
88 DISTNAME="Isabelle_$DATE"
89 DISTVERSION="$DISTNAME"
90 EXPORT="$THIS/cvs-copy $THIS/.. $DISTNAME"
91 UNOFFICIAL="unofficial test"
92 elif [ "$VERSION" = "-" ]; then
93 DISTNAME="Isabelle_$DATE"
94 DISTVERSION="$DISTNAME"
95 EXPORT="cvs -f -q checkout -P -d $DISTNAME isabelle"
96 UNOFFICIAL="unofficial"
99 DISTVERSION="$DISTNAME: $DISTDATE"
100 EXPORT="cvs -f -q export -r $VERSION -d $DISTNAME isabelle"
104 DISTBASE="$DISTPREFIX/dist-$DISTNAME"
105 mkdir -p "$DISTBASE" || fail "Unable to create distribution base dir $DISTBASE!"
106 [ -e "$DISTBASE/$DISTNAME" ] && fail "$DISTBASE/$DISTNAME already exists!"
107 [ -e "$DISTBASE/pdf/$DISTNAME" ] && fail "$DISTBASE/pdf/$DISTNAME already exists!"
113 echo "### Exporting $DISTNAME ..."
119 $FIND . -name CVS -print | xargs rm -rf
120 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
121 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
122 $FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
128 echo "### Building docs ..."
131 cd "$DISTBASE/$DISTNAME/Doc"
132 PDFLATEX=$(type -path pdflatex)
134 for DOC in $(cat Contents)
138 [ -n "$PDFLATEX" ] && make clean pdf
143 # prepare dist dir for release
146 echo "### Preparing distribution ..."
149 cd "$DISTBASE/$DISTNAME"
152 cp Distribution/doc/Contents ../page
153 cp Distribution/lib/logo/isabelle.gif ../page/main-content
154 cp Distribution/lib/logo/isabelle.gif ../page/dist-content
155 echo "$DISTNAME" > ../page/DISTNAME
157 MOVE=$($FIND Doc \( -type f -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
158 mv -f $MOVE Distribution/doc
159 rm Distribution/doc/Isa-logics.eps
168 ( cd lib/browser; make; )
170 cp doc/isabelle*.eps lib/logo
173 if [ -n "$UNOFFICIAL" ]; then
176 echo "IMPORTANT NOTE"
177 echo "=============="
179 echo "This is an $UNOFFICIAL release of Isabelle, created by $LOGNAME $DATE."
184 perl -pi -e "s/{ISABELLE}/$DISTNAME/g;" lib/html/index.html
185 perl -pi -e "s/Isabelle repository version/$DISTVERSION/" src/Pure/ROOT.ML
186 perl -pi -e "s/the internal repository version of Isabelle/$DISTVERSION/" README.html
187 lynx -dump README.html >README
189 ( cd src; ../Admin/maketags; )
196 echo "### Creating archives ..."
202 ln -s "$DISTNAME" Isabelle
204 chown -R "$LOGNAME" "$DISTNAME"
205 chgrp -R isabelle "$DISTNAME"
206 chmod -R u+w "$DISTNAME"
207 chmod -R g=o "$DISTNAME"
209 mkdir -p "pdf/$DISTNAME/doc"
210 mv "$DISTNAME/doc/"*.pdf "pdf/$DISTNAME/doc"
212 "$TAR" cf "$DISTNAME.tar" "$DISTNAME"
213 ( cd pdf; "$TAR" cf "../${DISTNAME}_pdf.tar" "$DISTNAME"; )
215 mv "pdf/$DISTNAME/doc/"*.pdf "$DISTNAME/doc"
216 rmdir "pdf/$DISTNAME/doc" "pdf/$DISTNAME" pdf
219 gzip "${DISTNAME}_pdf.tar"
224 mv "$DISTNAME" "${DISTNAME}-old"
227 mv "${DISTNAME}-old/README.html" "${DISTNAME}-old/INSTALL" "${DISTNAME}-old/NEWS" "${DISTNAME}-old/ANNOUNCE" "$DISTNAME"
228 mkdir "$DISTNAME/doc"
229 mv "${DISTNAME}-old/doc/"*.pdf "$DISTNAME/doc"
231 chgrp -R isabelle "$DISTNAME"
233 rm -rf "${DISTNAME}-old"