build
author wenzelm
Fri, 04 Apr 1997 14:47:26 +0200
changeset 2902 bacef535265c
parent 2879 477bfcb022d8
child 2914 01d24f98528f
permissions -rwxr-xr-x
added -b option (batch mode);
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
     1
#!/bin/bash -norc
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
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
     8
## settings
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
     9
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    10
PRG=$(basename $0)
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    11
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    12
ISABELLE_HOME=$(dirname $0)
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    13
. $ISABELLE_HOME/lib/scripts/getsettings || \
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    14
  { echo "$PRG probably not called from its original place!"; exit 2 }
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    15
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    16
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    17
## diagnostics
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    18
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    19
function usage()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    20
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    21
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    22
  echo "Usage: $PRG [OPTIONS] [LOGICS ...]"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    23
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    24
  echo "  Options are:"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    25
  echo "    -a           all logics"
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    26
  echo "    -b           batch mode"
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    27
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    28
  echo "  Compile the named LOGICS (default $DEFAULT_LOGIC), or all object logics"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    29
  echo "  in the distribution."
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    30
  echo
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    31
  exit 1
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    32
}
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    33
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    34
function fail()
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    35
{
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    36
  echo "$1" >&2
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    37
  exit 2
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
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    41
## process command line
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    42
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    43
# options
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    44
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    45
ALL=""
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    46
BATCH=""
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    47
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    48
while getopts "ab" OPT
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    49
do
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    50
  case "$OPT" in
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    51
    a)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    52
      ALL=true
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    53
      ;;
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    54
    b)
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    55
      BATCH=true
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    56
      ;;
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    57
    \?)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    58
      usage
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    59
      ;;
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    60
  esac
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    61
done
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    62
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    63
shift $(($OPTIND - 1))
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    64
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    65
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    66
# args
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    67
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    68
LOGICS="$@"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    69
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    70
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    71
## main
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    72
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    73
# tell the user about current values
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    74
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    75
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    76
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    77
  echo "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    78
  echo "                * Welcome to Isabelle build *"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    79
  echo "                *****************************"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    80
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    81
  echo "Please check $ISABELLE_HOME/etc/settings"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    82
  [ -f $ISABELLE_HOME_USER/etc/settings ] && echo "AND $ISABELLE_HOME_USER/etc/settings"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    83
  echo "to make sure that Isabelle's ML system settings are appropriate."
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    84
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    85
  echo "Your current values are:"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    86
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    87
  echo "  ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    88
  echo "  ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    89
  echo "  ML_OPTIONS=$ML_OPTIONS"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    90
fi
2789
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    91
69cf3aea45ee major tuning;
wenzelm
parents: 2781
diff changeset
    92
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
    93
# check logics
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
    94
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    95
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
    96
  echo
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 "Press RETURN to start compilation (including parents) of:"
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
fi
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   101
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   102
[ -z "$LOGICS" ] && LOGICS=$DEFAULT_LOGIC
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   103
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   104
if [ -n "$ALL" ]; then
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   105
  LOGICS=""
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   106
  for DIR in $ISABELLE_HOME/src/*
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   107
  do
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   108
    if [ -f $DIR/IsaMakefile ]; then
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   109
      L=$(basename $DIR)
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   110
      LOGICS="$LOGICS $L"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   111
    fi
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   112
  done
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   113
else
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   114
  for L in $LOGICS
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   115
  do
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   116
    DIR=$ISABELLE_HOME/src/$L
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   117
    [ ! -f $DIR/IsaMakefile ] && fail "No such logic: $L"
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   118
  done
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   119
fi
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   120
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   121
if [ -z "$BATCH" ]; then
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   122
  echo " " $LOGICS
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
  read
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   125
else
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
  echo -n "Isabelle build started at "; date
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   128
  echo "logics:" $LOGICS
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   129
  echo "ML_SYSTEM=$ML_SYSTEM"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   130
  echo "ML_HOME=$ML_HOME"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   131
  echo "ML_OPTIONS=$ML_OPTIONS"
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   132
  echo
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   133
fi
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   134
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   135
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   136
# build it
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   137
2781
0d6fcae3ae45 added THIS_IS_ISABELLE_BUILD;
wenzelm
parents: 2775
diff changeset
   138
export THIS_IS_ISABELLE_BUILD=true
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   139
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   140
for L in $LOGICS
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   141
do
2879
477bfcb022d8 misc improvements;
wenzelm
parents: 2789
diff changeset
   142
  ( cd $ISABELLE_HOME/src/$L; $ISATOOL make )
2755
9a7128d9722e build - compile parts of the Isabelle system;
wenzelm
parents:
diff changeset
   143
done
2902
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   144
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   145
if [ -n "$BATCH" ]; then
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
  echo -n "Isabelle build finished at "; date
bacef535265c added -b option (batch mode);
wenzelm
parents: 2879
diff changeset
   148
fi