Admin/makedist
author wenzelm
Thu, 18 Oct 2001 21:01:18 +0200
changeset 11826 2203c7f9ec40
parent 11392 3078f52ee552
child 11981 ad67e8d2c75f
permissions -rwxr-xr-x
proper setup for abstract product types;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3060
7c3564de392e removed -norc;
wenzelm
parents: 2970
diff changeset
     1
#!/bin/bash
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     2
#
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     3
# $Id$
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     4
#
10077
wenzelm
parents: 10068
diff changeset
     5
# makedist -- make Isabelle source distribution.
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     6
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     7
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     8
## global settings
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
     9
7993
wenzelm
parents: 7859
diff changeset
    10
LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Provers Pure Sequents TFL ZF"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    11
10533
909c473542f9 fixed hostname;
wenzelm
parents: 10532
diff changeset
    12
case $(hostname) in
10532
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    13
  *broy*)
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    14
    export CVSROOT=/usr/proj/isabelle-repository/archive
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    15
    ;;
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    16
  *.cl.cam.ac.uk)
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    17
    export CVSROOT=sunbroy1.informatik.tu-muenchen.de:/usr/proj/isabelle-repository/archive
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    18
    ;;
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    19
esac
042f67eea015 detect CVSROOT;
wenzelm
parents: 10169
diff changeset
    20
9052
7db48fe85b05 provide TAGS file for Isabelle sources;
wenzelm
parents: 8810
diff changeset
    21
DISTPREFIX=~/tmp/isadist
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    22
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    23
umask 022
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    24
9920
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    25
TAR=tar
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    26
type -path gtar >/dev/null && TAR=gtar
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    27
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    28
FIND=find
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    29
type -path gfind >/dev/null && FIND=gfind
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
    30
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    31
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    32
## diagnostics
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    33
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    34
PRG=$(basename "$0")
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    35
THIS=$(cd $(dirname "$0"); echo "$PWD")
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    36
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    37
function usage()
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    38
{
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    39
  cat <<EOF
11062
wenzelm
parents: 10928
diff changeset
    40
wenzelm
parents: 10928
diff changeset
    41
Usage: $PRG VERSION
wenzelm
parents: 10928
diff changeset
    42
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    43
  Make Isabelle distribution from the master sources at TUM.
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    44
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    45
  VERSION may be either a tag like "Isabelle99-XX" that specifies the
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    46
  release to be exported from the repository, or "-" to checkout the
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    47
  current sources as an unofficial release, or "--" to produce a
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    48
  tentative release from the present copy of the Isabelle repository.
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    49
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    50
  Checklist for official releases (before running this script):
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    51
11062
wenzelm
parents: 10928
diff changeset
    52
    * Check Admin/page contents.
wenzelm
parents: 10928
diff changeset
    53
    * Check ANNOUNCE, README, INSTALL, NEWS.
wenzelm
parents: 10928
diff changeset
    54
    * Try "isatool makeall all" with Poly/ML, SML/NJ, etc.
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    55
    * Tag the current repository version, e.g.:
10169
wenzelm
parents: 10112
diff changeset
    56
        cvs -d /usr/proj/isabelle-repository/archive rtag Isabelle99-X isabelle
11062
wenzelm
parents: 10928
diff changeset
    57
      PLEASE DO NOT DO THIS UNLESS YOU KNOW WHAT YOU ARE DOING!
5727
1b708bfb0c1e fixed index.html;
wenzelm
parents: 5725
diff changeset
    58
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    59
EOF
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    60
  exit 1
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    61
}
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    62
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    63
function fail()
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    64
{
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    65
  echo "$1" >&2
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    66
  exit 2
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    67
}
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    68
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    69
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    70
## process command line
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    71
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    72
[ "$#" -ne 1 ] && usage
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    73
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    74
VERSION="$1"
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    75
shift
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    76
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    77
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    78
## main
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    79
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    80
# dist version
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    81
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    82
DATE=$(date "+%d-%b-%Y")
4979
8b94f31a3022 README, Pure/ROOT.ML: version set automatically;
wenzelm
parents: 4550
diff changeset
    83
DISTDATE=$(date "+%B %Y")
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    84
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    85
if [ "$VERSION" = "--" ]; then
9925
wenzelm
parents: 9920
diff changeset
    86
  DISTNAME="Isabelle_$DATE"
4982
6f96354267e0 tuned dist version;
wenzelm
parents: 4979
diff changeset
    87
  DISTVERSION="$DISTNAME"
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    88
  EXPORT="$THIS/cvs-copy $THIS/.. $DISTNAME"
9925
wenzelm
parents: 9920
diff changeset
    89
  UNOFFICIAL="unofficial test"
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    90
elif [ "$VERSION" = "-" ]; then
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    91
  DISTNAME="Isabelle_$DATE"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    92
  DISTVERSION="$DISTNAME"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    93
  EXPORT="cvs -f -q checkout -P -d $DISTNAME isabelle"
9925
wenzelm
parents: 9920
diff changeset
    94
  UNOFFICIAL="unofficial"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    95
else
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    96
  DISTNAME="$VERSION"
4982
6f96354267e0 tuned dist version;
wenzelm
parents: 4979
diff changeset
    97
  DISTVERSION="$DISTNAME: $DISTDATE"
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
    98
  EXPORT="cvs -f -q export -r $VERSION -d $DISTNAME isabelle"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
    99
  UNOFFICIAL=""
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   100
fi
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   101
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   102
DISTBASE="$DISTPREFIX/dist-$DISTNAME"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   103
mkdir -p "$DISTBASE" || fail "Unable to create distribution base dir $DISTBASE!"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   104
[ -e "$DISTBASE/$DISTNAME" ] && fail "$DISTBASE/$DISTNAME already exists!"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   105
[ -e "$DISTBASE/pdf/$DISTNAME" ] && fail "$DISTBASE/pdf/$DISTNAME already exists!"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   106
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   107
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   108
# export repository
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   109
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   110
echo "###"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   111
echo "### Exporting $DISTNAME ..."
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   112
echo "###"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   113
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   114
cd "$DISTBASE"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   115
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   116
$EXPORT
9920
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   117
$FIND . -name CVS -print | xargs rm -rf
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   118
$FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   119
$FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   120
$FIND . "(" -type d -a -empty ")" -print | xargs rm -rf
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   121
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   122
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   123
# build docs
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   124
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   125
echo "###"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   126
echo "### Building docs ..."
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   127
echo "###"
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   128
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   129
cd "$DISTBASE/$DISTNAME/Doc"
6630
5f810292c030 make pdf;
wenzelm
parents: 6304
diff changeset
   130
PDFLATEX=$(type -path pdflatex)
3169
c13e54126fcd improved doc stuff;
wenzelm
parents: 3099
diff changeset
   131
c13e54126fcd improved doc stuff;
wenzelm
parents: 3099
diff changeset
   132
for DOC in $(cat Contents)
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   133
do
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   134
  cd "$DOC"
9925
wenzelm
parents: 9920
diff changeset
   135
  make dvi
wenzelm
parents: 9920
diff changeset
   136
  [ -n "$PDFLATEX" ] && make clean pdf
3169
c13e54126fcd improved doc stuff;
wenzelm
parents: 3099
diff changeset
   137
  cd ..
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   138
done
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   139
9052
7db48fe85b05 provide TAGS file for Isabelle sources;
wenzelm
parents: 8810
diff changeset
   140
9920
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   141
# prepare dist dir for release
8059
9128e934bf51 new web pages integrated
kleing
parents: 7993
diff changeset
   142
9920
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   143
echo "###"
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   144
echo "### Preparing distribution ..."
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   145
echo "###"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   146
9797
49e55730eb7a provide "--" argument: tentative release;
wenzelm
parents: 9782
diff changeset
   147
cd "$DISTBASE/$DISTNAME"
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   148
9925
wenzelm
parents: 9920
diff changeset
   149
cp -R Admin/page ..
wenzelm
parents: 9920
diff changeset
   150
cp Distribution/doc/Contents ../page
9920
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   151
cp Distribution/lib/logo/isabelle.gif ../page/main-content
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   152
cp Distribution/lib/logo/isabelle.gif ../page/dist-content
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   153
echo "$DISTNAME" > ../page/DISTNAME
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   154
9734f2717203 improved WWW page generation (still somewhat experimental);
wenzelm
parents: 9880
diff changeset
   155
MOVE=$($FIND Doc \( -type f -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
6630
5f810292c030 make pdf;
wenzelm
parents: 6304
diff changeset
   156
mv -f $MOVE Distribution/doc
3305
d8114e93ef66 fixed doc;
wenzelm
parents: 3281
diff changeset
   157
rm Distribution/doc/Isa-logics.eps
9052
7db48fe85b05 provide TAGS file for Isabelle sources;
wenzelm
parents: 8810
diff changeset
   158
rm -rf Doc Tools
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   159
7115
37178f53ed4d mkdir contrib;
wenzelm
parents: 6958
diff changeset
   160
mkdir src contrib
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   161
mv $LOGICS src
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   162
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   163
mv Distribution/* .
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   164
rmdir Distribution
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   165
4180
wenzelm
parents: 4176
diff changeset
   166
( cd lib/browser; make; )
3638
2b67561c6488 Added some commands for building theory browser.
berghofe
parents: 3363
diff changeset
   167
5385
8fc3828fdc8a eps logis;
wenzelm
parents: 5172
diff changeset
   168
cp doc/isabelle*.eps lib/logo
8fc3828fdc8a eps logis;
wenzelm
parents: 5172
diff changeset
   169
3638
2b67561c6488 Added some commands for building theory browser.
berghofe
parents: 3363
diff changeset
   170
2667
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents:
diff changeset
   171
if [ -n "$UNOFFICIAL" ]; then
b2172eab9ba6 makedist -- make Isabelle distribution.
wenzelm
parents: