lib/Tools/makeall
author wenzelm
Thu, 06 Feb 1997 18:22:59 +0100
changeset 2589 9d910f3681d0
parent 2565 64e52912eb09
child 2592 a17f46352df3
permissions -rwxr-xr-x
now falls back on ucat instead of cat;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2502
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     1
#!/bin/bash -norc
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     2
#
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     3
# $Id$
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     4
#
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     5
# DESCRIPTION: make all Isabelle systems afresh
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     6
#
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     7
# FIXME TODO:
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     8
#  - clean
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
     9
#  - usage
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    10
#  - getopts (i.e. *short* options) (?)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    11
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    12
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    13
# Creates gzipped log files called makeNNNN.log.gz on each subdirectory and
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    14
# displays the last few lines of these files -- this indicates whether
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    15
# the make failed (whether it terminated due to an error)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    16
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    17
# switches are
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    18
#     -noforce	don't delete old databases/images first
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    19
#     -clean	delete databases/images after use (leaving Pure)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    20
#     -notest	make databases/images w/o running the examples
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    21
#     -noexec	don't execute, just check settings and IsaMakefiles
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    22
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    23
2565
64e52912eb09 fixed getplatform call;
wenzelm
parents: 2502
diff changeset
    24
. $ISABELLE_HOME/lib/scripts/getplatform
64e52912eb09 fixed getplatform call;
wenzelm
parents: 2502
diff changeset
    25
export ISABELLE_OUTPUT_DIR="$ISABELLE_OUTPUT/$ML_SYSTEM-$PLATFORM"
64e52912eb09 fixed getplatform call;
wenzelm
parents: 2502
diff changeset
    26
2502
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    27
set -e			#fail immediately upon errors
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    28
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    29
# process command line switches
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    30
CLEAN="off";
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    31
FORCE="on";
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    32
TEST="test";
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    33
EXEC="on";
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    34
NO="";
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    35
for A in $*
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    36
do
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    37
	case $A in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    38
	-clean) CLEAN="on" ;;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    39
	-noforce) FORCE="off" ;;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    40
	-notest) TEST="" ;;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    41
	-noexec) EXEC="off"
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    42
                 NO="-n" ;;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    43
	*)	echo "Bad flag for makeall: $A"
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    44
		echo "Usage: makeall [-noforce] [-clean] [-notest] [-noexec]"
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    45
		exit ;;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    46
	esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    47
done
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    48
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    49
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    50
echo Started at `date`
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    51
echo Source=`pwd`
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    52
echo Destination=$ISABELLE_OUTPUT_DIR
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    53
echo force=$FORCE '    ' clean=$CLEAN '    '
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    54
echo Compiler=$ML_SYSTEM
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    55
echo Running on `hostname`
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    56
echo Log files will be called make$$.log.gz
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    57
case $TEST in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    58
  test) echo; echo '		**** Full test: WILL TAKE MANY HOURS ****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    59
        echo '		**** Consider the -notest switch ****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    60
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    61
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    62
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    63
case $FORCE.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    64
  on.on) (cd $ISABELLE_OUTPUT_DIR;
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    65
          for f in Pure FOL ZF CCL LCF CTT Sequents HOL HOLCF Cube FOLP
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    66
	  do 
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    67
	   rm -f $f
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    68
	  done)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    69
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    70
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    71
set +e			#no longer fail upon errors -- e.g. if a make fails
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    72
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    73
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    74
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    75
echo '*****Pure Isabelle*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    76
( cd Pure; $ISATOOL make $NO > make$$.log )
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    77
tail Pure/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    78
gzip Pure/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    79
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    80
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    81
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    82
echo '*****First-Order Logic (FOL)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    83
(cd FOL; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    84
tail FOL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    85
gzip FOL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    86
#cannot delete FOL yet... it is needed for ZF, CCL and LCF!
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    87
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    88
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    89
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    90
echo '*****Set theory (ZF)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    91
(cd ZF; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    92
tail ZF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    93
gzip ZF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    94
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    95
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/ZF
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    96
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    97
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    98
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
    99
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   100
echo '*****Classical Computational Logic (CCL)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   101
(cd CCL; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   102
tail CCL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   103
gzip CCL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   104
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   105
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/CCL
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   106
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   107
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   108
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   109
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   110
echo '*****Domain Theory (LCF)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   111
(cd LCF; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   112
tail LCF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   113
gzip LCF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   114
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   115
  on.on)	rm -f $ISABELLE_OUTPUT_DIR/FOL $ISABELLE_OUTPUT_DIR/LCF
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   116
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   117
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   118
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   119
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   120
echo '*****Constructive Type Theory (CTT)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   121
(cd CTT; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   122
tail CTT/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   123
gzip CTT/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   124
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   125
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/CTT
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   126
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   127
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   128
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   129
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   130
echo '*****Sequent Calculi (Sequents)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   131
(cd Sequents; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   132
tail Sequents/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   133
gzip Sequents/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   134
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   135
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/Sequents
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   136
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   137
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   138
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   139
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   140
echo '*****Higher-Order Logic (HOL)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   141
(cd HOL; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   142
tail HOL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   143
gzip HOL/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   144
#cannot delete HOL yet... it is needed for HOLCF!
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   145
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   146
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   147
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   148
echo '*****LCF in HOL (HOLCF)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   149
(cd HOLCF; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   150
tail HOLCF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   151
gzip HOLCF/make$$.log
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   152
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   153
  on.on)	rm -f $ISABELLE_OUTPUT_DIR/HOL $ISABELLE_OUTPUT_DIR/HOLCF
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   154
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   155
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   156
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   157
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   158
echo '*****The Lambda-Cube (Cube)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   159
(cd Cube; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   160
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   161
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/Cube
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   162
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   163
tail Cube/make$$.log 
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   164
gzip Cube/make$$.log 
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   165
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   166
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   167
echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   168
echo '*****First-Order Logic with Proof Terms (FOLP)*****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   169
(cd FOLP; $ISATOOL make $NO $TEST > make$$.log)
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   170
case $CLEAN.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   171
    on.on)	rm -f $ISABELLE_OUTPUT_DIR/FOLP
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   172
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   173
tail FOLP/make$$.log 
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   174
gzip FOLP/make$$.log 
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   175
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   176
case $TEST.$EXEC in
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   177
    test.on)	echo
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   178
	        echo '***** Now check the dates on the "test" files *****'
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   179
        	ls -lrt FOL/test ZF/test CCL/test LCF/test CTT/test\
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   180
              	        Sequents/test HOL/test HOLCF/test\
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   181
                        Cube/test FOLP/test
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   182
esac
dcf928805273 make all Isabelle systems afresh;
wenzelm
parents:
diff changeset
   183
echo Finished at `date`