|
1 ######################################################################### |
|
2 # # |
|
3 # Makefile for Isabelle (CCL) # |
|
4 # # |
|
5 ######################################################################### |
|
6 |
|
7 #To make the system, cd to this directory and type |
|
8 # make -f Makefile |
|
9 #To make the system and test it on standard examples, type |
|
10 # make -f Makefile test |
|
11 |
|
12 #Environment variable ISABELLECOMP specifies the compiler. |
|
13 #Environment variable ISABELLEBIN specifies the destination directory. |
|
14 #For Poly/ML, ISABELLEBIN must begin with a / |
|
15 |
|
16 #Makes FOL if this file is ABSENT -- but not |
|
17 #if it is out of date, since this Makefile does not know its dependencies! |
|
18 |
|
19 BIN = $(ISABELLEBIN) |
|
20 COMP = $(ISABELLECOMP) |
|
21 |
|
22 SET_FILES = ROOT.ML set.thy set.ML subset.ML equalities.ML mono.ML \ |
|
23 gfp.thy gfp.ML lfp.thy lfp.ML |
|
24 |
|
25 CCL_FILES = ccl.thy ccl.ML terms.thy terms.ML types.thy types.ML \ |
|
26 coinduction.ML hered.thy hered.ML trancl.thy trancl.ML\ |
|
27 wf.thy wf.ML genrec.ML typecheck.ML eval.ML fix.thy fix.ML |
|
28 |
|
29 #Uses cp rather than make_database because Poly/ML allows only 3 levels |
|
30 $(BIN)/CCL: $(BIN)/FOL $(SET_FILES) $(CCL_FILES) |
|
31 case "$(COMP)" in \ |
|
32 poly*) cp $(BIN)/FOL $(BIN)/CCL;\ |
|
33 echo 'open PolyML; use"ROOT";' | $(COMP) $(BIN)/CCL ;;\ |
|
34 sml*) echo 'use"ROOT.ML"; xML"$(BIN)/CCL" banner;' | $(BIN)/FOL;;\ |
|
35 *) echo Bad value for ISABELLECOMP;;\ |
|
36 esac |
|
37 |
|
38 $(BIN)/FOL: |
|
39 cd ../FOL; $(MAKE) |
|
40 |
|
41 test: ex/ROOT.ML $(BIN)/CCL |
|
42 case "$(COMP)" in \ |
|
43 poly*) echo 'use"ex/ROOT.ML"; quit();' | $(COMP) $(BIN)/CCL ;;\ |
|
44 sml*) echo 'use"ex/ROOT.ML";' | $(BIN)/CCL;;\ |
|
45 *) echo Bad value for ISABELLECOMP;;\ |
|
46 esac |
|
47 |
|
48 .PRECIOUS: $(BIN)/FOL $(BIN)/CCL |