build
author paulson
Fri, 17 Jul 1998 11:13:59 +0200
changeset 5157 6e03de8ec2b4
parent 4581 52edf5ac3afa
child 5386 4325d853494a
permissions -rwxr-xr-x
as in HOL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3255
7678f3d93053 fixed bash path;
wenzelm
parents: 3184
diff changeset
     1
#!/bin/bash
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     2
#
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     3
# $Id$
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     4
#
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
     5
# build - compile the Isabelle system and object-logics
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     6
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     7
4457
wenzelm
parents: 3255
diff changeset
     8
## global settings
wenzelm
parents: 3255
diff changeset
     9
wenzelm
parents: 3255
diff changeset
    10
ALL_LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Pure Sequents ZF"
wenzelm
parents: 3255
diff changeset
    11
wenzelm
parents: 3255
diff changeset
    12
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    13
## settings
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    14
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    15
PRG=$(basename $0)
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    16
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    17
ISABELLE_HOME=$(dirname $0)
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    18
. $ISABELLE_HOME/lib/scripts/getsettings || \
2936
bd33e7aae062 fixed { ... } shell syntax to accomodate bash 2.x;
wenzelm
parents: 2918
diff changeset
    19
  { echo "$PRG probably not called from its original place!"; exit 2; }
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    20
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    21
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    22
## diagnostics
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    23
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    24
function usage()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    25
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    26
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    27
  echo "Usage: $PRG [OPTIONS] [LOGICS ...]"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    28
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    29
  echo "  Options are:"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    30
  echo "    -a           all logics"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    31
  echo "    -b           batch mode"
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    32
  echo "    -t           run tests"
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    33
  echo
3184
4e0bbfb113d5 renamed DEFAULT_LOGIC to ISABELLE_LOGIC;
wenzelm
parents: 3007
diff changeset
    34
  echo "  Compile the named LOGICS (default $ISABELLE_LOGIC), or all object logics"
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    35
  echo "  in the distribution."
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    36
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    37
  exit 1
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    38
}
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    39
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    40
function fail()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    41
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    42
  echo "$1" >&2
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    43
  exit 2
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    44
}
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    45
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    46
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    47
## process command line
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    48
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    49
# options
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    50
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    51
ALL=""
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    52
BATCH=""
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    53
TEST=""
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    54
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    55
while getopts "abt" OPT
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    56
do
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    57
  case "$OPT" in
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    58
    a)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    59
      ALL=true
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    60
      ;;
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    61
    b)
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    62
      BATCH=true
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    63
      ;;
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    64
    t)
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    65
      TEST=test
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    66
      ;;
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    67
    \?)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    68
      usage
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    69
      ;;
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    70
  esac
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    71
done
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    72
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    73
shift $(($OPTIND - 1))
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    74
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    75
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    76
# args
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    77
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    78
LOGICS="$@"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    79
4457
wenzelm
parents: 3255
diff changeset
    80
[ -n "$ALL" ] && LOGICS="$LOGICS $ALL_LOGICS"
wenzelm
parents: 3255
diff changeset
    81
[ -z "$LOGICS" ] && LOGICS="$ISABELLE_LOGIC"
wenzelm
parents: 3255
diff changeset
    82
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    83
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    84
## main
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    85
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    86
# tell the user about current values
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    87
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    88
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    89
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    90
  echo "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    91
  echo "                * Welcome to Isabelle build *"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    92
  echo "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    93
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    94
  echo "Please check $ISABELLE_HOME/etc/settings"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    95
  [ -f $ISABELLE_HOME_USER/etc/settings ] && echo "AND $ISABELLE_HOME_USER/etc/settings"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    96
  echo "to make sure that Isabelle's ML system settings are appropriate."
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    97
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    98
  echo "Your current values are:"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    99
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   100
  echo "  ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   101
  echo "  ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   102
  echo "  ML_OPTIONS=$ML_OPTIONS"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   103
fi
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
   104
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
   105
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   106
# check logics
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   107
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   108
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   109
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   110
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   111
  echo "Press RETURN to start compilation (including parents) of:"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   112
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   113
fi
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   114
4457
wenzelm
parents: 3255
diff changeset
   115
wenzelm
parents: 3255
diff changeset
   116
MAKE_LOGICS=""
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   117
4457
wenzelm
parents: 3255
diff changeset
   118
for L in $LOGICS
wenzelm
parents: 3255
diff changeset
   119
do
wenzelm
parents: 3255
diff changeset
   120
  DIR=$ISABELLE_HOME/src/$L
wenzelm
parents: 3255
diff changeset
   121
  if [ -f $DIR/IsaMakefile ]; then
wenzelm
parents: 3255
diff changeset
   122
    MAKE_LOGICS="$MAKE_LOGICS $L"
wenzelm
parents: 3255
diff changeset
   123
  else
wenzelm
parents: 3255
diff changeset
   124
    echo "No such logic: $L"
wenzelm
parents: 3255
diff changeset
   125
  fi
wenzelm
parents: 3255
diff changeset
   126
done
wenzelm
parents: 3255
diff changeset
   127
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   128
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   129
if [ -z "$BATCH" ]; then
4457
wenzelm
parents: 3255
diff changeset
   130
  echo " " $MAKE_LOGICS
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   131
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   132
  read
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   133
else
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   134
  echo
4457
wenzelm
parents: 3255
diff changeset
   135
  echo "Isabelle build:" $MAKE_LOGICS
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   136
  echo
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   137
  echo "ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   138
  echo "ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   139
  echo "ML_OPTIONS=$ML_OPTIONS"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   140
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   141
fi
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   142
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   143
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   144
# build it
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   145
4457
wenzelm
parents: 3255
diff changeset
   146
SECONDS=0
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   147
echo -n "Started at "; date
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   148
2781
0d6fcae3ae45 added THIS_IS_ISABELLE_BUILD;
wenzelm
parents: 2775
diff changeset
   149
export THIS_IS_ISABELLE_BUILD=true
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   150
4457
wenzelm
parents: 3255
diff changeset
   151
for L in $MAKE_LOGICS
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   152
do
4581
52edf5ac3afa make images;
wenzelm
parents: 4457
diff changeset
   153
  ( cd $ISABELLE_HOME/src/$L; $ISATOOL make images $TEST )
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   154
done
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   155
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   156
echo -n "Finished at "; date
4457
wenzelm
parents: 3255
diff changeset
   157
wenzelm
parents: 3255
diff changeset
   158
ELAPSED=$($ISABELLE_HOME/lib/scripts/showtime $SECONDS)
wenzelm
parents: 3255
diff changeset
   159
echo "$ELAPSED total elapsed time"