5 # makedist -- make Isabelle source distribution.
10 DISTPREFIX=${DISTPREFIX:-~/tmp/isadist}
11 SRCS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents Tools ZF"
13 export CVSROOT=/home/isabelle-repository/archive
14 [ ! -d "$CVSROOT" ] && CVSROOT="${ISABELLE_USER:-$USER}@atbroy100.informatik.tu-muenchen.de:$CVSROOT"
16 [ -z "$CVS2CL" ] && type -path cvs2cl >/dev/null && CVS2CL=cvs2cl
24 THIS=$(cd $(dirname "$0"); echo "$PWD")
30 Usage: $PRG VERSION [NAME]
32 Make Isabelle distribution from the master sources at TUM.
34 VERSION may be either a tag like "IsabelleXXXX" that specifies the
35 release to be exported from the repository, or "-" to checkout the
36 current sources as an unofficial release.
38 NAME specifies an explicit distribution name, by default it is
52 ## process command line
54 [ "$#" -ne 1 -a "$#" -ne 2 ] && usage
58 if [ "$#" -eq 0 ]; then
69 DATE=$(env LC_ALL=C date "+%d-%b-%Y")
70 DISTDATE=$(env LC_ALL=C date "+%B %Y")
72 if [ "$VERSION" = "-" ]; then
73 DISTIDENT="Isabelle_$DATE"
74 [ -z "$DISTNAME" ] && DISTNAME="$DISTIDENT"
75 DISTVERSION="$DISTNAME"
76 EXPORT="cvs -f -q checkout -P -d $DISTNAME isabelle"
80 [ -z "$DISTNAME" ] && DISTNAME="$DISTIDENT"
81 DISTVERSION="$DISTNAME: $DISTDATE"
82 EXPORT="cvs -f -q export -r $VERSION -d $DISTNAME isabelle"
86 DISTBASE="$DISTPREFIX/dist-$DISTNAME"
87 mkdir -p "$DISTBASE" || fail "Unable to create distribution base dir $DISTBASE!"
88 [ -e "$DISTBASE/$DISTNAME" ] && fail "$DISTBASE/$DISTNAME already exists!"
89 [ -e "$DISTBASE/pdf/$DISTNAME" ] && fail "$DISTBASE/pdf/$DISTNAME already exists!"
95 echo "### Exporting $DISTIDENT ..."
100 $EXPORT || fail "Export failed!"
102 if [ -n "$CVS2CL" -a -n "$UNOFFICIAL" ]; then
110 find . -name CVS -print | xargs rm -rf
111 find . -name .cvsignore -print | xargs rm -rf
112 find . "(" -name \*.thy -o -name \*.ML ")" -perm +111 -print | xargs chmod -x
113 find . -print | xargs chmod u+rw
118 "$DISTBASE/$DISTNAME/Admin/build" all || fail "Failed to build distribution"
121 # prepare dist dir for release
124 echo "### Preparing distribution ..."
127 cd "$DISTBASE/$DISTNAME" || fail "No dist directory: $DISTBASE/$DISTNAME"
130 cat > ../website/distinfo.mak <<EOF
131 # this is a generated file - do not edit unless you know what you are doing!
138 cp Distribution/lib/html/library_index_content.template ../website/
140 MOVE=$(find Doc \( -type f -a -not -type l -a -not -name isabelle_isar.pdf -a -not -name pghead.pdf -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
141 mv -f $MOVE Distribution/doc
142 rm Distribution/doc/Isa-logics.eps
143 rm Distribution/doc/codegen_process.pdf
153 cp doc/isabelle*.eps lib/logo
156 if [ -n "$UNOFFICIAL" ]; then
159 echo "IMPORTANT NOTE"
160 echo "=============="
162 echo "This is an unofficial snapshot of Isabelle, created by $LOGNAME $DATE."
166 perl -pi -e "s/val is_official = false/val is_official = true/" src/Pure/ROOT.ML
169 perl -pi -e "s/ISABELLE_IDENTIFIER=\"\"/ISABELLE_IDENTIFIER=\"$DISTNAME\"/g;" lib/scripts/getsettings
170 perl -pi -e "s/{ISABELLE}/$DISTNAME/g;" lib/html/library_index_header.template
171 perl -pi -e "s/Isabelle repository version/$DISTVERSION/" src/Pure/ROOT.ML lib/Tools/version
172 perl -pi -e "s/the internal repository version of Isabelle/$DISTVERSION/" README
181 echo "### Creating archives ..."
186 echo "$DISTBASE/$DISTNAME.tar.gz" > ../ISABELLE_DIST
189 ln -s "$DISTNAME" Isabelle
191 chown -R "$LOGNAME" "$DISTNAME"
192 chmod -R u+w "$DISTNAME"
193 chmod -R g=o "$DISTNAME"
194 chgrp -R isabelle "$DISTNAME" Isabelle
196 mkdir -p "pdf/$DISTNAME/doc"
197 mv "$DISTNAME/doc/"*.pdf "pdf/$DISTNAME/doc"
199 echo "$DISTNAME.tar.gz"
200 tar cf "$DISTNAME.tar" Isabelle "$DISTNAME"
203 echo "${DISTNAME}_pdf.tar.gz"
204 ( cd pdf; tar cf "../${DISTNAME}_pdf.tar" "$DISTNAME"; )
205 gzip "${DISTNAME}_pdf.tar"
207 mv "pdf/$DISTNAME/doc/"*.pdf "$DISTNAME/doc"
208 rmdir "pdf/$DISTNAME/doc" "pdf/$DISTNAME" pdf
213 mv "$DISTNAME" "${DISTNAME}-old"
216 mv "${DISTNAME}-old/README" "${DISTNAME}-old/INSTALL" "${DISTNAME}-old/NEWS" \
217 "${DISTNAME}-old/ANNOUNCE" "${DISTNAME}-old/COPYRIGHT" "${DISTNAME}-old/CONTRIBUTORS" \
219 mkdir "$DISTNAME/doc"
220 mv "${DISTNAME}-old/doc/"*.pdf "${DISTNAME}-old/doc/Contents" "$DISTNAME/doc"
222 chgrp -R isabelle "$DISTNAME"
224 rm -rf "${DISTNAME}-old"
228 echo "### Finished makedist."