lib/Tools/mkdir
author wenzelm
Fri, 19 Oct 2001 21:59:33 +0200
changeset 11836 805b0c13607e
parent 11650 e4314c06a2a3
child 11846 2ce611f870e0
permissions -rwxr-xr-x
improved default dependencies;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10555
2323ec838401 /usr/bin/env bash;
wenzelm
parents: 10511
diff changeset
     1
#!/usr/bin/env bash
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     2
#
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     3
# $Id$
9788
wenzelm
parents: 9656
diff changeset
     4
# Author: Markus Wenzel, TU Muenchen
wenzelm
parents: 9656
diff changeset
     5
# License: GPL (GNU GENERAL PUBLIC LICENSE)
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     6
#
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     7
# DESCRIPTION: prepare logic session directory
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     8
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
     9
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    10
## diagnostics
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    11
10511
wenzelm
parents: 10423
diff changeset
    12
PRG="$(basename "$0")"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    13
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    14
function usage()
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    15
{
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    16
  echo
9237
161fb7f00414 fixed usage;
wenzelm
parents: 8685
diff changeset
    17
  echo "Usage: $PRG [OPTIONS] [LOGIC] NAME"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    18
  echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    19
  echo "  Options are:"
8198
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
    20
  echo "    -I FILE      alternative IsaMakefile output"
8211
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
    21
  echo "    -P           include parent logic target"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    22
  echo "    -b           setup build mode (session outputs heap image)"
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    23
  echo "    -q           quiet mode"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    24
  echo
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    25
  echo "  Prepare session directory, including IsaMakefile and document source"
8199
wenzelm
parents: 8198
diff changeset
    26
  echo "  with parent LOGIC (default ISABELLE_LOGIC=$ISABELLE_LOGIC)"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    27
  echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    28
  exit 1
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    29
}
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    30
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    31
function fail()
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    32
{
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    33
  echo "$1" >&2
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    34
  exit 2
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    35
}
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    36
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    37
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    38
## process command line
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    39
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    40
# options
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    41
8198
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
    42
ISAMAKEFILE="IsaMakefile"
8211
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
    43
PARENT=""
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    44
BUILD=""
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    45
QUIET=""
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    46
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    47
while getopts "I:Pbq" OPT
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    48
do
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    49
  case "$OPT" in
8198
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
    50
    I)
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
    51
      ISAMAKEFILE="$OPTARG"
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
    52
      ;;
8211
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
    53
    P)
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
    54
      PARENT=true
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
    55
      ;;
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    56
    b)
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    57
      BUILD=true
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    58
      ;;
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    59
    q)
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    60
      QUIET=true
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    61
      ;;
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    62
    \?)
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    63
      usage
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    64
      ;;
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    65
  esac
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    66
done
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    67
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    68
shift $(($OPTIND - 1))
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    69
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    70
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    71
# args
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    72
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    73
9788
wenzelm
parents: 9656
diff changeset
    74
if [ "$#" -eq 1 ]; then
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
    75
  LOGIC="$ISABELLE_LOGIC"
8685
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    76
  DIR_NAME="$1"; shift
9788
wenzelm
parents: 9656
diff changeset
    77
elif [ "$#" -eq 2 ]; then
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
    78
  LOGIC="$1"; shift
8685
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    79
  DIR_NAME="$1"; shift
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
    80
else
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
    81
  usage
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
    82
fi
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    83
8685
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    84
DIR=$(dirname "$DIR_NAME")
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    85
NAME=$(basename "$DIR_NAME")
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    86
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    87
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    88
## main
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    89
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    90
[ -z "$QUIET" ] && echo "Preparing session \"$NAME\" ..."
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    91
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
    92
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    93
# IsaMakefile
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
    94
8685
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    95
mkdir -p "$DIR" || fail "Bad directory: $DIR"
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    96
cd "$DIR"
05b6e5bcab66 handle dir prefix;
wenzelm
parents: 8579
diff changeset
    97
8244
c587f5ac4a98 basic source deps;
wenzelm
parents: 8211
diff changeset
    98
DOCUMENT_ROOT=""
c587f5ac4a98 basic source deps;
wenzelm
parents: 8211
diff changeset
    99
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   100
if [ -n "$BUILD" ]; then
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   101
  IMAGES="$NAME"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   102
  TEST=""
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   103
  TARGET="\$(OUT)/$NAME"
8244
c587f5ac4a98 basic source deps;
wenzelm
parents: 8211
diff changeset
   104
  ROOT_ML="ROOT.ML"
8579
81ef0fc80822 tuned targets;
wenzelm
parents: 8501
diff changeset
   105
  SOURCES="*.thy"
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   106
  DOCUMENT_ROOT="document/root.tex"
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
   107
  USEDIR="\$(USEDIR) -b -P http://isabelle.in.tum.de/library"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   108
else
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   109
  IMAGES=""
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   110
  TEST="$NAME"
8211
714f164f0385 rename -p to -P;
wenzelm
parents: 8199
diff changeset
   111
  TARGET="\$(LOG)/$LOGIC-$NAME.gz"
8244
c587f5ac4a98 basic source deps;
wenzelm
parents: 8211
diff changeset
   112
  ROOT_ML="$NAME/ROOT.ML"
8579
81ef0fc80822 tuned targets;
wenzelm
parents: 8501
diff changeset
   113
  SOURCES="$NAME/*.thy"
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   114
  DOCUMENT_ROOT="$NAME/document/root.tex"
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
   115
  USEDIR="\$(USEDIR)"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   116
fi
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   117
8198
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   118
if [ "$ISAMAKEFILE" != - -a -f "$ISAMAKEFILE" ]; then
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   119
  echo "keeping $DIR/$ISAMAKEFILE" >&2
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   120
else
11650
wenzelm
parents: 11578
diff changeset
   121
  [ -z "$QUIET" -a -n "$ISAMAKEFILE" -a "$ISAMAKEFILE" != - ] && \
wenzelm
parents: 11578
diff changeset
   122
    echo "creating $DIR/$ISAMAKEFILE" >&2
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   123
  { echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   124
    echo "## targets"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   125
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   126
    echo "default: $NAME"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   127
    echo "images: $IMAGES"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   128
    echo "test: $TEST"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   129
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   130
    echo "all: images test"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   131
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   132
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   133
    echo "## global settings"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   134
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   135
    echo "SRC = \$(ISABELLE_HOME)/src"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   136
    echo "OUT = \$(ISABELLE_OUTPUT)"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   137
    echo "LOG = \$(OUT)/log"
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   138
    echo
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   139
    echo "USEDIR = \$(ISATOOL) usedir -v true -i true -d dvi  ## -D document"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   140
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   141
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   142
    echo "## $NAME"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   143
    echo ""
8162
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   144
    if [ -n "$PARENT" ]; then
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   145
      echo "$NAME: $LOGIC $TARGET"
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   146
      echo
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   147
      echo "$LOGIC:"
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   148
      echo -e "\t@cd \$(SRC)/$LOGIC; \$(ISATOOL) make $LOGIC"
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   149
      echo
11836
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   150
      echo "${NAME}.deps:  ## $SOURCES"
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   151
      echo
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   152
      echo "$TARGET: \$(OUT)/$LOGIC $ROOT_ML $DOCUMENT_ROOT ${NAME}.deps"
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
   153
      echo -e "\t@$USEDIR \$(OUT)/$LOGIC $NAME"
8162
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   154
    else
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   155
      echo "$NAME: $TARGET"
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   156
      echo
11836
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   157
      echo "${NAME}.deps:   ## $ROOT_ML $DOCUMENT_ROOT $SOURCES"
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   158
      echo
805b0c13607e improved default dependencies;
wenzelm
parents: 11650
diff changeset
   159
      echo "$TARGET: ${NAME}.deps"
8194
0c5d9d23b715 misc improvements;
wenzelm
parents: 8162
diff changeset
   160
      echo -e "\t@$USEDIR $LOGIC $NAME"
8162
020e384e67dd -p option;
wenzelm
parents: 8159
diff changeset
   161
    fi
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   162
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   163
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   164
    echo "## clean"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   165
    echo
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   166
    echo "clean:"
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   167
    echo -e "\t@rm -f $TARGET"
8198
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   168
  } | {
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   169
    if [ -z "$ISAMAKEFILE" -o "$ISAMAKEFILE" = - ]; then
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   170
      cat
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   171
    else
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   172
      cat > "$ISAMAKEFILE"
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   173
    fi
73a5877ca517 -I option;
wenzelm
parents: 8194
diff changeset
   174
  }
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   175
fi
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   176
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   177
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   178
# base directory
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   179
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   180
if [ -z "$BUILD" ]; then
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   181
  mkdir -p "$NAME" || fail "Bad directory: $DIR/$NAME"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   182
  cd "$NAME"
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   183
  PREFIX="$DIR/$NAME"
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   184
else
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   185
  PREFIX="$DIR"
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   186
fi
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   187
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   188
if [ -f ROOT.ML ]; then
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   189
  echo "keeping $PREFIX/ROOT.ML" >&2
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   190
else
11650
wenzelm
parents: 11578
diff changeset
   191
  [ -z "$QUIET" ] && echo "creating $PREFIX/ROOT.ML" >&2
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   192
  cat >ROOT.ML <<EOF
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   193
(*
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   194
  no_document use_thy "ThisTheory";
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   195
  use_thy "ThatTheory";
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   196
*)
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   197
EOF
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   198
fi
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   199
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   200
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   201
# document directory
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   202
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   203
#set by configure
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   204
AUTO_PERL=perl
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   205
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   206
if [ -e document ]; then
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   207
  echo "keeping $PREFIX/document" >&2
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   208
else
11650
wenzelm
parents: 11578
diff changeset
   209
  [ -z "$QUIET" ] && echo "creating $PREFIX/document" >&2
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   210
  mkdir document || fail "Bad directory: $PREFIX/document"
11650
wenzelm
parents: 11578
diff changeset
   211
wenzelm
parents: 11578
diff changeset
   212
  [ -z "$QUIET" ] && echo "creating $PREFIX/document/root.tex" >&2
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   213
  TITLE=$(echo "$NAME" | tr _ -)
11650
wenzelm
parents: 11578
diff changeset
   214
  AUTHOR=$("$AUTO_PERL" -e "@pw = getpwnam(\"$USER\"); print @pw[-3]" | tr _ -)
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   215
  cat >document/root.tex <<EOF
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   216
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   217
\documentclass[11pt,a4paper]{article}
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   218
\usepackage{isabelle,isabellesym}
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   219
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   220
% further packages required for unusual symbols (see also isabellesym.sty)
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   221
%\usepackage{latexsym}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   222
%\usepackage{amssymb}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   223
%\usepackage[english]{babel}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   224
%\usepackage[latin1]{inputenc}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   225
%\usepackage[only,bigsqcap]{stmaryrd}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   226
%\usepackage{wasysym}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   227
%\usepackage{eufrak}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   228
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   229
% this should be the last package used
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   230
\usepackage{pdfsetup}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   231
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   232
% proper setup for best-style documents
10021
6d5d618b302c best-style made default;
wenzelm
parents: 9788
diff changeset
   233
\urlstyle{rm}
6d5d618b302c best-style made default;
wenzelm
parents: 9788
diff changeset
   234
\isabellestyle{it}
9656
a3d868043c49 %\urlstyle{rm}
wenzelm
parents: 9237
diff changeset
   235
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   236
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   237
\begin{document}
10353
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   238
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   239
\title{$TITLE}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   240
\author{$AUTHOR}
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   241
\maketitle
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   242
10308
c50fc8023ac0 make sure default document works;
wenzelm
parents: 10021
diff changeset
   243
\tableofcontents
10353
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   244
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   245
\parindent 0pt\parskip 0.5ex
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   246
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   247
% include generated text of all theories
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   248
\input{session}
10353
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   249
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   250
%\bibliographystyle{plain}
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   251
%\bibliography{root}
b1b3f25750f4 tuned tex template;
wenzelm
parents: 10308
diff changeset
   252
8159
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   253
\end{document}
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   254
EOF
64c272504383 mkdir: prepare logic session directory;
wenzelm
parents:
diff changeset
   255
fi
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   256
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   257
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   258
# notes
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   259
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   260
if [ -z "$QUIET" ]; then
11650
wenzelm
parents: 11578
diff changeset
   261
  cat >&2 <<EOF
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   262
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   263
Notes:
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   264
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   265
  * 'isatool make' processes the session (including document preparation)
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   266
11650
wenzelm
parents: 11578
diff changeset
   267
  * $DIR/IsaMakefile contains compilation options and file dependencies
wenzelm
parents: 11578
diff changeset
   268
11578
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   269
  * $PREFIX/ROOT.ML needs to contain ML code to load all theories
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   270
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   271
  * $PREFIX/document/root.tex contains the LaTeX master document setup
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   272
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   273
EOF
43c6735080b8 removed option -d (now standard behaviour);
wenzelm
parents: 10576
diff changeset
   274
fi