7 |
7 |
8 ## global settings |
8 ## global settings |
9 |
9 |
10 LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents TFL ZF" |
10 LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents TFL ZF" |
11 |
11 |
12 CVSROOT=/usr/proj/isabelle-repository/archive |
12 export CVSROOT=/usr/proj/isabelle-repository/archive |
13 DISTPREFIX=~/tmp/isadist |
13 DISTPREFIX=~/tmp/isadist |
14 |
14 |
|
15 umask 022 |
|
16 newgrp isabelle |
|
17 |
15 |
18 |
16 ## diagnostics |
19 ## diagnostics |
17 |
20 |
18 PRG=$(basename $0) |
21 PRG=$(basename "$0") |
19 THIS=$(cd $(dirname "$0"); echo $PWD) |
22 THIS=$(cd $(dirname "$0"); echo "$PWD") |
20 |
23 |
21 function usage() |
24 function usage() |
22 { |
25 { |
23 echo |
26 echo "###" |
24 echo "Usage: $PRG VERSION" |
27 echo "### Usage: $PRG VERSION" |
25 echo |
28 echo "###" |
26 cat <<EOF |
29 cat <<EOF |
27 Make Isabelle distribution from the master sources at TUM. |
30 Make Isabelle distribution from the master sources at TUM. |
28 |
31 |
29 VERSION may be either a tag like "Isabelle94-XX" that specifies the |
32 VERSION may be either a tag like "Isabelle99-XX" that specifies the |
30 release to be exported from the repository, or "-" to checkout the |
33 release to be exported from the repository, or "-" to checkout the |
31 current sources as an unofficial release. |
34 current sources as an unofficial release, or "--" to produce a |
|
35 tentative release from the present copy of the Isabelle repository. |
32 |
36 |
33 Checklist for official releases (before running this script): |
37 Checklist for official releases (before running this script): |
34 |
38 |
35 * Check release name and date in NEWS! |
39 * Check release name and date in NEWS! |
36 * Check that README files are up to date (should have Id: lines). |
40 * Check that README files are up to date (should have Id: lines). |
37 * Check Admin/index.html. |
41 * Check Admin/index.html. |
38 * Make sure that encoding info is consistent (fixencoding)! |
|
39 * Check ML_SYSTEM defaults! |
|
40 EOF |
42 EOF |
41 #Wicked! We just won't tell other users ... |
43 #Wicked! We just won't tell other users ... |
42 if [ $LOGNAME = paulson -o $LOGNAME = nipkow -o $LOGNAME = wenzelm -o $LOGNAME = berghofe ]; then |
44 if [ $LOGNAME = paulson -o $LOGNAME = nipkow -o $LOGNAME = wenzelm -o $LOGNAME = berghofe ]; then |
43 cat <<EOF |
45 cat <<EOF |
44 * Tag the current repository version, e.g.: |
46 * Tag the current repository version, e.g.: |
45 cvs -d $CVSROOT rtag Isabelle94-XX isabelle |
47 cvs -d $CVSROOT rtag Isabelle99-XX isabelle |
46 PLEASE DON'T DO THIS UNLESS YOU KNOW WHAT YOU'RE DOING! |
48 PLEASE DON'T DO THIS UNLESS YOU KNOW WHAT YOU'RE DOING! |
47 EOF |
49 EOF |
48 fi |
50 fi |
49 cat <<EOF |
51 cat <<EOF |
50 |
52 |
75 # dist version |
77 # dist version |
76 |
78 |
77 DATE=$(date "+%d-%b-%Y") |
79 DATE=$(date "+%d-%b-%Y") |
78 DISTDATE=$(date "+%B %Y") |
80 DISTDATE=$(date "+%B %Y") |
79 |
81 |
80 if [ "$VERSION" = "-" ]; then |
82 if [ "$VERSION" = "--" ]; then |
81 DISTNAME=Isabelle_$DATE |
83 DISTNAME="Isabelle_$DATE_test" |
82 DISTVERSION="$DISTNAME" |
84 DISTVERSION="$DISTNAME" |
83 EXPORT="checkout -P" |
85 EXPORT="$THIS/cvs-copy $THIS/.. $DISTNAME" |
|
86 UNOFFICIAL="" |
|
87 elif [ "$VERSION" = "-" ]; then |
|
88 DISTNAME="Isabelle_$DATE" |
|
89 DISTVERSION="$DISTNAME" |
|
90 EXPORT="cvs -f -q checkout -P -d $DISTNAME isabelle" |
84 UNOFFICIAL=true |
91 UNOFFICIAL=true |
85 else |
92 else |
86 DISTNAME="$VERSION" |
93 DISTNAME="$VERSION" |
87 DISTVERSION="$DISTNAME: $DISTDATE" |
94 DISTVERSION="$DISTNAME: $DISTDATE" |
88 EXPORT="export -r $VERSION" |
95 EXPORT="cvs -f -q export -r $VERSION -d $DISTNAME isabelle" |
89 UNOFFICIAL="" |
96 UNOFFICIAL="" |
90 fi |
97 fi |
91 |
98 |
92 DISTBASE=$DISTPREFIX/dist-$DISTNAME |
99 DISTBASE="$DISTPREFIX/dist-$DISTNAME" |
93 mkdir -p $DISTBASE || fail "Unable to create distribution base dir $DISTBASE!" |
100 mkdir -p "$DISTBASE" || fail "Unable to create distribution base dir $DISTBASE!" |
94 [ -e $DISTBASE/$DISTNAME ] && fail "$DISTBASE/$DISTNAME already exists!" |
101 [ -e "$DISTBASE/$DISTNAME" ] && fail "$DISTBASE/$DISTNAME already exists!" |
95 [ -e $DISTBASE/pdf/$DISTNAME ] && fail "$DISTBASE/pdf/$DISTNAME already exists!" |
102 [ -e "$DISTBASE/pdf/$DISTNAME" ] && fail "$DISTBASE/pdf/$DISTNAME already exists!" |
96 |
103 |
97 |
104 |
98 # export from repository |
105 # export repository |
99 |
106 |
100 echo |
107 echo "###" |
101 echo "Exporting $DISTNAME from repository. Please be patient ..." |
108 echo "### Exporting $DISTNAME ..." |
102 echo |
109 echo "###" |
103 |
110 |
104 cd $DISTBASE |
111 cd "$DISTBASE" |
105 |
112 |
106 export CVSROOT |
113 $EXPORT |
107 cvs -f -q $EXPORT -d $DISTNAME isabelle |
|
108 find . -name CVS -exec rm -rf {} \; |
114 find . -name CVS -exec rm -rf {} \; |
109 |
115 |
110 |
116 |
111 # make docs |
117 # build docs |
112 |
118 |
113 cd $DISTBASE/$DISTNAME/Doc |
119 echo "###" |
|
120 echo "### Building docs ..." |
|
121 echo "###" |
|
122 |
|
123 cd "$DISTBASE/$DISTNAME/Doc" |
114 PDFLATEX=$(type -path pdflatex) |
124 PDFLATEX=$(type -path pdflatex) |
115 |
125 |
116 for DOC in $(cat Contents) |
126 for DOC in $(cat Contents) |
117 do |
127 do |
118 cd $DOC |
128 cd "$DOC" |
119 make dvi |
129 make dvi |
120 [ -n "$PDFLATEX" ] && make clean pdf |
130 [ -n "$PDFLATEX" ] && make clean pdf |
121 cd .. |
131 cd .. |
122 done |
132 done |
123 |
133 |
124 |
134 |
125 # make WWW pages |
135 # make WWW pages |
126 |
136 |
127 export DISTNAME |
137 #FIXME |
128 (cd $DISTBASE/$DISTNAME/Admin/page; make clean; make dist; cd dist; cp * $DISTBASE) |
138 #export DISTNAME |
|
139 #( cd "$DISTBASE/$DISTNAME/Admin/page"; make clean; make dist; cd dist; cp * "$DISTBASE"; ) |
129 |
140 |
130 |
141 |
131 # prepare dist dir for release |
142 # prepare dist dir for release |
132 |
143 |
133 cd $DISTBASE/$DISTNAME |
144 cd "$DISTBASE/$DISTNAME" |
134 |
145 |
135 MOVE=$(find Doc \( -type f -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf') |
146 MOVE=$(find Doc \( -type f -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf') |
136 mv -f $MOVE Distribution/doc |
147 mv -f $MOVE Distribution/doc |
137 rm Distribution/doc/Isa-logics.eps |
148 rm Distribution/doc/Isa-logics.eps |
138 rm -rf Doc Tools |
149 rm -rf Doc Tools |
168 rm -rf Admin |
179 rm -rf Admin |
169 |
180 |
170 |
181 |
171 # create archive |
182 # create archive |
172 |
183 |
173 cd $DISTBASE |
184 echo "###" |
174 |
185 echo "### Creating archives ..." |
175 chown -R $LOGNAME:isabelle $DISTNAME |
186 echo "###" |
176 chmod -R u+w $DISTNAME |
187 |
|
188 cd "$DISTBASE" |
|
189 |
|
190 chown -R "$LOGNAME" "$DISTNAME" |
|
191 chgrp -R isabelle "$DISTNAME" |
|
192 chmod -R u+w "$DISTNAME" |
|
193 chmod -R g=o "$DISTNAME" |
177 |
194 |
178 TAR=tar |
195 TAR=tar |
179 type -path gtar >/dev/null && TAR=gtar |
196 type -path gtar >/dev/null && TAR=gtar |
180 |
197 |
181 mkdir -p pdf/$DISTNAME/doc |
198 mkdir -p "pdf/$DISTNAME/doc" |
182 mv $DISTNAME/doc/*.pdf pdf/$DISTNAME/doc |
199 mv "$DISTNAME/doc/"*.pdf "pdf/$DISTNAME/doc" |
183 |
200 |
184 $TAR cf $DISTNAME.tar $DISTNAME |
201 "$TAR" cf "$DISTNAME.tar" "$DISTNAME" |
185 ( cd pdf; $TAR cf ../${DISTNAME}_pdf.tar $DISTNAME; ) |
202 ( cd pdf; "$TAR" cf "../${DISTNAME}_pdf.tar" "$DISTNAME"; ) |
186 |
203 |
187 mv pdf/$DISTNAME/doc/*.pdf $DISTNAME/doc |
204 mv "pdf/$DISTNAME/doc/"*.pdf "$DISTNAME/doc" |
188 rmdir pdf/$DISTNAME/doc pdf/$DISTNAME pdf |
205 rmdir "pdf/$DISTNAME/doc" "pdf/$DISTNAME" pdf |
189 |
206 |
190 gzip $DISTNAME.tar |
207 gzip "$DISTNAME.tar" |
191 gzip ${DISTNAME}_pdf.tar |
208 gzip "${DISTNAME}_pdf.tar" |
192 |
209 |
193 |
210 |
194 # cleanup dist |
211 # cleanup dist |
195 |
212 |
196 mv $DISTNAME ${DISTNAME}-old |
213 mv "$DISTNAME" "${DISTNAME}-old" |
197 mkdir $DISTNAME |
214 mkdir "$DISTNAME" |
198 |
215 |
199 mv ${DISTNAME}-old/lib/logo/isabelle.gif . |
216 mv "${DISTNAME}-old/lib/logo/isabelle.gif" . |
200 mv ${DISTNAME}-old/README.html ${DISTNAME}-old/INSTALL $DISTNAME |
217 mv "${DISTNAME}-old/README.html" "${DISTNAME}-old/INSTALL" "$DISTNAME" |
201 mkdir $DISTNAME/doc && \ |
218 mkdir "$DISTNAME/doc" |
202 mv ${DISTNAME}-old/doc/*.pdf ${DISTNAME}-old/doc/Contents $DISTNAME/doc |
219 mv "${DISTNAME}-old/doc/"*.pdf "${DISTNAME}-old/doc/Contents" "$DISTNAME/doc" |
203 |
220 |
204 rm -rf ${DISTNAME}-old |
221 rm -rf "${DISTNAME}-old" |
205 |
222 |
206 |
223 |
207 # prepare web pages |
224 # prepare web pages |
208 |
225 |
209 #FIXME |
226 #FIXME |
210 #$THIS/filesizes -norpm |
227 #$THIS/filesizes -norpm |
211 |
228 |
212 |
229 |
213 # final note |
230 # final note |
214 |
231 |
215 echo |
232 echo "###" |
216 echo "That's it. You'll find the distribution in $DISTBASE." |
233 echo "### Finished. You will find the distribution in $DISTBASE." |
217 echo |
234 echo "###" |