Admin/makedist
changeset 9797 49e55730eb7a
parent 9782 63b195acdaaa
child 9867 bf8300fa4238
equal deleted inserted replaced
9796:68a7ef151426 9797:49e55730eb7a
     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 
    62 }
    64 }
    63 
    65 
    64 
    66 
    65 ## process command line
    67 ## process command line
    66 
    68 
    67 [ $# -ne 1 ] && usage
    69 [ "$#" -ne 1 ] && usage
    68 
    70 
    69 VERSION="$1"
    71 VERSION="$1"
    70 shift
    72 shift
    71 
    73 
    72 
    74 
    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 "###"