lib/Tools/makeall
author wenzelm
Tue, 04 Aug 2009 16:11:11 +0200
changeset 32325 300b7d5d23d7
parent 29143 72c960b2b83e
child 32390 468eff174a77
permissions -rwxr-xr-x
turned object-logics into components;
isabelle makeall: operate on all components with IsaMakefile, not just hardwired "logics";
wenzelm@10555
     1
#!/usr/bin/env bash
wenzelm@2502
     2
#
wenzelm@9788
     3
# Author: Markus Wenzel, TU Muenchen
wenzelm@2502
     4
#
wenzelm@4456
     5
# DESCRIPTION: apply make utility to all logics
wenzelm@2502
     6
wenzelm@4456
     7
## diagnostics
wenzelm@2502
     8
wenzelm@10511
     9
PRG="$(basename "$0")"
wenzelm@2502
    10
wenzelm@4456
    11
function usage()
wenzelm@4456
    12
{
wenzelm@4456
    13
  echo
wenzelm@28650
    14
  echo "Usage: isabelle $PRG [ARGS ...]"
wenzelm@4456
    15
  echo
wenzelm@32325
    16
  echo "  Apply isabelle make to all components with IsaMakefile (passing ARGS)."
wenzelm@4456
    17
  echo
wenzelm@4456
    18
  exit 1
wenzelm@4456
    19
}
wenzelm@4456
    20
kleing@13229
    21
function fail()
kleing@13229
    22
{
kleing@13229
    23
  echo "$1" >&2
kleing@13229
    24
  exit 2
kleing@13229
    25
}
wenzelm@4456
    26
wenzelm@32325
    27
wenzelm@4456
    28
## main
wenzelm@4456
    29
wenzelm@4456
    30
[ "$1" = "-?" ] && usage
wenzelm@4456
    31
kleing@13235
    32
FAIL=""
kleing@13235
    33
wenzelm@10511
    34
echo "Started at $(date) ($ML_IDENTIFIER on $(hostname))"
wenzelm@18321
    35
. "$ISABELLE_HOME/lib/scripts/timestart.bash"
wenzelm@4456
    36
wenzelm@32325
    37
ORIG_IFS="$IFS"; IFS=":"; declare -a COMPONENTS=($ISABELLE_COMPONENTS); IFS="$ORIG_IFS"
wenzelm@32325
    38
wenzelm@32325
    39
for DIR in "${COMPONENTS[@]}"
wenzelm@2502
    40
do
wenzelm@32325
    41
  if [ -f "$DIR/IsaMakefile" ]; then
wenzelm@32325
    42
    NAME="$(basename "$DIR")"
wenzelm@32325
    43
    ( cd "$DIR"; "$ISABELLE_TOOL" make "$@" ) || FAIL="$FAIL$NAME "
wenzelm@32325
    44
  fi
wenzelm@2502
    45
done
wenzelm@2502
    46
wenzelm@4456
    47
echo -n "Finished at "; date
wenzelm@2502
    48
wenzelm@18321
    49
. "$ISABELLE_HOME/lib/scripts/timestop.bash"
wenzelm@18321
    50
echo "$TIMES_REPORT"
kleing@13235
    51
kleing@13834
    52
[ "$FAIL" = "" ] || fail "Logics ${FAIL}FAILED!"