build
author dixon
Wed, 02 Mar 2005 10:33:10 +0100
changeset 15560 c862d556fb18
parent 14981 e73f8140af78
child 15779 aed221aff642
permissions -rwxr-xr-x
lucas - fixed bug with name capture variables bound outside redex could (previously)conflict with scheme variables that occur in the conditions of an equation, and which were renamed to avoid conflict with another instantiation. This has now been fixed.
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
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$
9817
wenzelm
parents: 9789
diff changeset
     4
# Author: Markus Wenzel, TU Muenchen
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     5
#
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
     6
# build - compile the Isabelle system and object-logics
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     7
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     8
4457
wenzelm
parents: 3255
diff changeset
     9
## global settings
wenzelm
parents: 3255
diff changeset
    10
wenzelm
parents: 3255
diff changeset
    11
ALL_LOGICS="CCL CTT Cube FOL FOLP HOL HOLCF LCF Pure Sequents ZF"
wenzelm
parents: 3255
diff changeset
    12
wenzelm
parents: 3255
diff changeset
    13
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    14
## settings
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    15
10511
wenzelm
parents: 9817
diff changeset
    16
PRG="$(basename "$0")"
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    17
7889
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    18
export THIS_IS_ISABELLE_BUILD=true
10511
wenzelm
parents: 9817
diff changeset
    19
ISABELLE_HOME="$(dirname "$0")"
9789
wenzelm
parents: 7889
diff changeset
    20
. "$ISABELLE_HOME/lib/scripts/getsettings" || \
2936
bd33e7aae062 fixed { ... } shell syntax to accomodate bash 2.x;
wenzelm
parents: 2918
diff changeset
    21
  { echo "$PRG probably not called from its original place!"; exit 2; }
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    22
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    23
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    24
## diagnostics
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    25
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    26
function usage()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    27
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    28
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    29
  echo "Usage: $PRG [OPTIONS] [LOGICS ...]"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    30
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    31
  echo "  Options are:"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    32
  echo "    -a           all logics"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    33
  echo "    -b           batch mode"
6256
e17fb80b3ce1 -i option;
wenzelm
parents: 5393
diff changeset
    34
  echo "    -i           make images"
7889
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    35
  echo "    -m TARGET    make this target"
6256
e17fb80b3ce1 -i option;
wenzelm
parents: 5393
diff changeset
    36
  echo "    -t           make test"
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    37
  echo
3184
4e0bbfb113d5 renamed DEFAULT_LOGIC to ISABELLE_LOGIC;
wenzelm
parents: 3007
diff changeset
    38
  echo "  Compile the named LOGICS (default $ISABELLE_LOGIC), or all object logics"
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    39
  echo "  in the distribution."
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    40
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    41
  exit 1
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    42
}
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    43
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    44
function fail()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    45
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    46
  echo "$1" >&2
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    47
  exit 2
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    48
}
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    49
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    50
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    51
## process command line
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    52
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    53
# options
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    54
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    55
ALL=""
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    56
BATCH=""
7889
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    57
TARGETS=""
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    58
14041
c2d981d222bf make it possible to switch off proof objects
kleing
parents: 10555
diff changeset
    59
while getopts "abim:p:t" OPT
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    60
do
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    61
  case "$OPT" in
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    62
    a)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    63
      ALL=true
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    64
      ;;
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    65
    b)
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    66
      BATCH=true
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    67
      ;;
6256
e17fb80b3ce1 -i option;
wenzelm
parents: 5393
diff changeset
    68
    i)
7889
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    69
      TARGETS="$TARGETS images"
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    70
      ;;
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    71
    m)
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    72
      TARGETS="$TARGETS $OPTARG"
6256
e17fb80b3ce1 -i option;
wenzelm
parents: 5393
diff changeset
    73
      ;;
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    74
    t)
7889
56e91ac0f074 option -m TARGET;
wenzelm
parents: 7782
diff changeset
    75
      TARGETS="$TARGETS test"
2918
0305b0acba78 added -t (run tests) option;
wenzelm
parents: 2914
diff changeset
    76
      ;;
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    77
    \?)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    78
      usage
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    79
      ;;
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    80
  esac
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    81
done
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    82
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    83
shift $(($OPTIND - 1))
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    84
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    85
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    86
# args
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    87
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    88
LOGICS="$@"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    89
4457
wenzelm
parents: 3255
diff changeset
    90
[ -n "$ALL" ] && LOGICS="$LOGICS $ALL_LOGICS"
wenzelm
parents: 3255
diff changeset
    91
[ -z "$LOGICS" ] && LOGICS="$ISABELLE_LOGIC"
wenzelm
parents: 3255
diff changeset
    92
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    93
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    94
## main
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    95
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    96
# tell the user about current values
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    97
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    98
if [ -z "$BATCH" ]; then
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 "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   101
  echo "                * Welcome to Isabelle build *"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   102
  echo "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   103
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   104
  echo "Please check $ISABELLE_HOME/etc/settings"
9789
wenzelm
parents: 7889
diff changeset
   105
  [ -f "$ISABELLE_HOME_USER/etc/settings" ] && echo "AND $ISABELLE_HOME_USER/etc/settings"
5386
wenzelm
parents: 4581
diff changeset
   106
  echo "to make sure that Isabelle's ML system settings and compilation options"
wenzelm
parents: 4581
diff changeset
   107
  echo "are appropriate."
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   108
  echo
5386
wenzelm
parents: 4581
diff changeset
   109
  echo "The current values are:"
2902
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 "  ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   112
  echo "  ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   113
  echo "  ML_OPTIONS=$ML_OPTIONS"
7277
bb9502f9154a improved messages;
wenzelm
parents: 6256
diff changeset
   114
  echo "  ML_PLATFORM=$ML_PLATFORM"
5386
wenzelm
parents: 4581
diff changeset
   115
  echo
wenzelm
parents: 4581
diff changeset
   116
  echo "  ISABELLE_USEDIR_OPTIONS=$ISABELLE_USEDIR_OPTIONS"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   117
fi
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
   118
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
   119
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   120
# check logics
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   121
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   122
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   123
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   124
  echo
9817
wenzelm
parents: 9789
diff changeset
   125
  echo "Press RETURN to compilation of"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   126
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   127
fi
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   128
4457
wenzelm
parents: 3255
diff changeset
   129
wenzelm
parents: 3255
diff changeset
   130
MAKE_LOGICS=""
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   131
4457
wenzelm
parents: 3255
diff changeset
   132
for L in $LOGICS
wenzelm
parents: 3255
diff changeset
   133
do
9789
wenzelm
parents: 7889
diff changeset
   134
  DIR="$ISABELLE_HOME/src/$L"
wenzelm
parents: 7889
diff changeset
   135
  if [ -f "$DIR/IsaMakefile" ]; then
4457
wenzelm
parents: 3255
diff changeset
   136
    MAKE_LOGICS="$MAKE_LOGICS $L"
wenzelm
parents: 3255
diff changeset
   137
  else
wenzelm
parents: 3255
diff changeset
   138
    echo "No such logic: $L"
wenzelm
parents: 3255
diff changeset
   139
  fi
wenzelm
parents: 3255
diff changeset
   140
done
wenzelm
parents: 3255
diff changeset
   141
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   142
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   143
if [ -z "$BATCH" ]; then
9789
wenzelm
parents: 7889
diff changeset
   144
  echo " $MAKE_LOGICS"
9817
wenzelm
parents: 9789
diff changeset
   145
  [ -n "$TARGETS" ] && echo "  (targets:$TARGETS)"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   146
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   147
  read
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   148
else
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   149
  echo
9789
wenzelm
parents: 7889
diff changeset
   150
  echo "Isabelle build: $MAKE_LOGICS"
9817
wenzelm
parents: 9789
diff changeset
   151
  [ -n "$TARGETS" ] && echo "(targets:$TARGETS)"
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   152
  echo
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   153
  echo "ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   154
  echo "ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   155
  echo "ML_OPTIONS=$ML_OPTIONS"
7311
1ef2c659023d echo ML_PLATFORM;
wenzelm
parents: 7277
diff changeset
   156
  echo "ML_PLATFORM=$ML_PLATFORM"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   157
  echo
5393
7299e531d481 fixed ISABELLE_USEDIR_OPTIONS;
wenzelm
parents: 5386
diff changeset
   158
  echo "ISABELLE_USEDIR_OPTIONS=$ISABELLE_USEDIR_OPTIONS"
7299e531d481 fixed ISABELLE_USEDIR_OPTIONS;
wenzelm
parents: 5386
diff changeset
   159
  echo
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   160
fi
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   161
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   162
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   163
# build it
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   164
4457
wenzelm
parents: 3255
diff changeset
   165
SECONDS=0
10511
wenzelm
parents: 9817
diff changeset
   166
echo "Started at $(date) ($ML_IDENTIFIER on $(hostname))"
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   167
4457
wenzelm
parents: 3255
diff changeset
   168
for L in $MAKE_LOGICS
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   169
do
14056
f8ed8428b41c remove -p option, separate setting available
kleing
parents: 14041
diff changeset
   170
  ( cd "$ISABELLE_HOME/src/$L"; "$ISATOOL" make $TARGETS )
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   171
done
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   172
2914
01d24f98528f improved messages;
wenzelm
parents: 2902
diff changeset
   173
echo -n "Finished at "; date
4457
wenzelm
parents: 3255
diff changeset
   174
9789
wenzelm
parents: 7889
diff changeset
   175
ELAPSED=$("$ISABELLE_HOME/lib/scripts/showtime" "$SECONDS")
4457
wenzelm
parents: 3255
diff changeset
   176
echo "$ELAPSED total elapsed time"