src/HOL/Makefile
changeset 1491 38a14548baad
parent 1472 a89803e3d1bd
child 1513 c318e1bbecca
equal deleted inserted replaced
1490:713256365b92 1491:38a14548baad
    38                 	exit 1; \
    38                 	exit 1; \
    39            	fi;\
    39            	fi;\
    40 	case "$(COMP)" in \
    40 	case "$(COMP)" in \
    41 	poly*)	echo 'make_database"$(BIN)/HOL"; quit();'  \
    41 	poly*)	echo 'make_database"$(BIN)/HOL"; quit();'  \
    42 		  | $(COMP) $(BIN)/Pure;\
    42 		  | $(COMP) $(BIN)/Pure;\
    43 		if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
    43                 if [ "$${MAKE_HTML}" = "true" ]; \
    44                 then echo 'open PolyML; make_html := true; exit_use_dir".";' \
    44                 then echo 'open PolyML; make_html := true; exit_use_dir".";' \
    45                   | $(COMP) $(BIN)/HOL;\
    45                        | $(COMP) $(BIN)/HOL;\
    46 		else echo 'open PolyML; exit_use_dir".";' \
    46 		elif [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
    47                 then echo 'open PolyML; make_html := true; exit_use_dir".";                               make_html := false;' | $(COMP) $(BIN)/HOL;\
       
    48                 else echo 'open PolyML; exit_use_dir".";' \
    47                        | $(COMP) $(BIN)/HOL;\
    49                        | $(COMP) $(BIN)/HOL;\
    48                 fi;;\
    50                 fi;;\
    49 	sml*)	if [ "$${MAKE_HTML-undefined}" != "undefined" ];\
    51 	sml*)	if [ "$${MAKE_HTML}" = "true" ]; \
    50                 then echo 'make_html := true; exit_use_dir".";                                            xML"$(BIN)/HOL" banner;' | $(BIN)/Pure;\
    52                 then echo 'make_html := true; exit_use_dir".";                                            xML"$(BIN)/HOL" banner;' | $(BIN)/Pure;\
       
    53                 elif [ "$${MAKE_HTML-undefined}" != "undefined" ];\
       
    54                 then echo 'make_html := true; exit_use_dir".";                                            make_html := false; xML"$(BIN)/HOL" banner;' \
       
    55                        | $(BIN)/Pure;\
    51                 else echo 'exit_use_dir"."; xML"$(BIN)/HOL" banner;' \
    56                 else echo 'exit_use_dir"."; xML"$(BIN)/HOL" banner;' \
    52                        | $(BIN)/Pure;\
    57                        | $(BIN)/Pure;\
    53                 fi;;\
    58                 fi;;\
    54 	*)	echo Bad value for ISABELLECOMP: \
    59 	*)	echo Bad value for ISABELLECOMP: \
    55                 	$(COMP) is not poly or sml; exit 1;;\
    60                 	$(COMP) is not poly or sml; exit 1;;\
    71 ##IMP-semantics example
    76 ##IMP-semantics example
    72 IMP_NAMES = Com Denotation Equiv Properties
    77 IMP_NAMES = Com Denotation Equiv Properties
    73 IMP_FILES = IMP/ROOT.ML $(IMP_NAMES:%=IMP/%.thy) $(IMP_NAMES:%=IMP/%.ML)
    78 IMP_FILES = IMP/ROOT.ML $(IMP_NAMES:%=IMP/%.thy) $(IMP_NAMES:%=IMP/%.ML)
    74 
    79 
    75 IMP:    $(BIN)/HOL  $(IMP_FILES)
    80 IMP:    $(BIN)/HOL  $(IMP_FILES)
    76 	echo 'exit_use_dir"IMP";quit();' | $(LOGIC)
    81 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
    82         then echo 'make_html := true; exit_use_dir"IMP";quit();' | $(LOGIC); \
       
    83         else echo 'exit_use_dir"IMP";quit();' | $(LOGIC); \
       
    84         fi
    77 
    85 
    78 ##Hoare logic
    86 ##Hoare logic
    79 Hoare_NAMES = Hoare Arith2 Examples
    87 Hoare_NAMES = Hoare Arith2 Examples
    80 Hoare_FILES = Hoare/ROOT.ML $(Hoare_NAMES:%=Hoare/%.thy) $(Hoare_NAMES:%=Hoare/%.ML)
    88 Hoare_FILES = Hoare/ROOT.ML $(Hoare_NAMES:%=Hoare/%.thy) \
       
    89               $(Hoare_NAMES:%=Hoare/%.ML)
    81 
    90 
    82 Hoare:  $(BIN)/HOL  $(Hoare_FILES)
    91 Hoare:  $(BIN)/HOL  $(Hoare_FILES)
    83 	echo 'exit_use_dir"Hoare";quit();' | $(LOGIC)
    92 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
    93         then echo 'make_html := true; exit_use_dir"Hoare";quit();' | $(LOGIC);\
       
    94         else echo 'exit_use_dir"Hoare";quit();' | $(LOGIC); \
       
    95         fi
    84 
    96 
    85 ##The integers in HOL
    97 ##The integers in HOL
    86 INTEG_NAMES = Equiv Integ 
    98 INTEG_NAMES = Equiv Integ 
    87 
    99 
    88 INTEG_FILES = Integ/ROOT.ML \
   100 INTEG_FILES = Integ/ROOT.ML \
    89               $(INTEG_NAMES:%=Integ/%.thy) $(INTEG_NAMES:%=Integ/%.ML)
   101               $(INTEG_NAMES:%=Integ/%.thy) $(INTEG_NAMES:%=Integ/%.ML)
    90 
   102 
    91 Integ:  $(BIN)/HOL  $(INTEG_FILES)
   103 Integ:  $(BIN)/HOL  $(INTEG_FILES)
    92 	echo 'exit_use_dir"Integ";quit();' | $(LOGIC)
   104 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   105         then echo 'make_html := true; exit_use_dir"Integ";quit();' | $(LOGIC);\
       
   106         else echo 'exit_use_dir"Integ";quit();' | $(LOGIC); \
       
   107         fi
    93 
   108 
    94 ##I/O Automata
   109 ##I/O Automata
    95 IOA_NTP_NAMES = Abschannel Action Correctness Impl Lemmas Multiset Packet\
   110 IOA_NTP_NAMES = Abschannel Action Correctness Impl Lemmas Multiset Packet\
    96                 Receiver Sender
   111                 Receiver Sender
    97 IOA_ABP_NAMES = Action Correctness Lemmas
   112 IOA_ABP_NAMES = Action Correctness Lemmas
   104  IOA/ABP/Receiver.thy IOA/ABP/Sender.thy IOA/ABP/Spec.thy\
   119  IOA/ABP/Receiver.thy IOA/ABP/Sender.thy IOA/ABP/Spec.thy\
   105  $(IOA_ABP_NAMES:%=IOA/ABP/%.thy) $(IOA_ABP_NAMES:%=IOA/ABP/%.ML)\
   120  $(IOA_ABP_NAMES:%=IOA/ABP/%.thy) $(IOA_ABP_NAMES:%=IOA/ABP/%.ML)\
   106  $(IOA_MT_NAMES:%=IOA/meta_theory/%.thy) $(IOA_MT_NAMES:%=IOA/meta_theory/%.ML)
   121  $(IOA_MT_NAMES:%=IOA/meta_theory/%.thy) $(IOA_MT_NAMES:%=IOA/meta_theory/%.ML)
   107 
   122 
   108 IOA:    $(BIN)/HOL  $(IOA_FILES)
   123 IOA:    $(BIN)/HOL  $(IOA_FILES)
   109 	echo 'exit_use_dir"IOA/NTP";quit();' | $(LOGIC)
   124 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
   110 	echo 'exit_use_dir"IOA/ABP";quit();' | $(LOGIC)
   125         then echo 'make_html := true; exit_use_dir"IOA/NTP";quit();' \
       
   126                | $(LOGIC);\
       
   127              echo 'make_html := true; exit_use_dir"IOA/ABP";quit();' \
       
   128                | $(LOGIC);\
       
   129         else echo 'exit_use_dir"IOA/NTP";quit();' | $(LOGIC); \
       
   130 	     echo 'exit_use_dir"IOA/ABP";quit();' | $(LOGIC); \
       
   131         fi
   111 
   132 
   112 ##Properties of substitutions
   133 ##Properties of substitutions
   113 SUBST_NAMES = AList Setplus Subst Unifier UTerm UTLemmas
   134 SUBST_NAMES = AList Setplus Subst Unifier UTerm UTLemmas
   114 
   135 
   115 SUBST_FILES = Subst/ROOT.ML \
   136 SUBST_FILES = Subst/ROOT.ML \
   116               $(SUBST_NAMES:%=Subst/%.thy) $(SUBST_NAMES:%=Subst/%.ML)
   137               $(SUBST_NAMES:%=Subst/%.thy) $(SUBST_NAMES:%=Subst/%.ML)
   117 
   138 
   118 Subst:  $(BIN)/HOL  $(SUBST_FILES)
   139 Subst:  $(BIN)/HOL  $(SUBST_FILES)
   119 	echo 'exit_use_dir"Subst";quit();' | $(LOGIC)
   140 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   141         then echo 'make_html := true; exit_use_dir"Subst";quit();' | $(LOGIC);\
       
   142         else echo 'exit_use_dir"Subst";quit();' | $(LOGIC); \
       
   143         fi
   120 
   144 
   121 ##Confluence of Lambda-calculus
   145 ##Confluence of Lambda-calculus
   122 LAMBDA_NAMES = Lambda ParRed Commutation Eta
   146 LAMBDA_NAMES = Lambda ParRed Commutation Eta
   123 
   147 
   124 LAMBDA_FILES = Lambda/ROOT.ML \
   148 LAMBDA_FILES = Lambda/ROOT.ML \
   125               $(LAMBDA_NAMES:%=Lambda/%.thy) $(LAMBDA_NAMES:%=Lambda/%.ML)
   149               $(LAMBDA_NAMES:%=Lambda/%.thy) $(LAMBDA_NAMES:%=Lambda/%.ML)
   126 
   150 
   127 Lambda:  $(BIN)/HOL $(LAMBDA_FILES)
   151 Lambda:  $(BIN)/HOL $(LAMBDA_FILES)
   128 	echo 'exit_use_dir"Lambda";quit();' | $(LOGIC)
   152 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   153         then echo 'make_html := true; exit_use_dir"Lambda";quit();' \
       
   154                | $(LOGIC);\
       
   155         else echo 'exit_use_dir"Lambda";quit();' | $(LOGIC); \
       
   156         fi
   129 
   157 
   130 ##Type inference for MiniML
   158 ##Type inference for MiniML
   131 MINIML_NAMES = I Maybe MiniML Type W
   159 MINIML_NAMES = I Maybe MiniML Type W
   132 
   160 
   133 MINIML_FILES = MiniML/ROOT.ML \
   161 MINIML_FILES = MiniML/ROOT.ML \
   134               $(MINIML_NAMES:%=MiniML/%.thy) $(MINIML_NAMES:%=MiniML/%.ML)
   162               $(MINIML_NAMES:%=MiniML/%.thy) $(MINIML_NAMES:%=MiniML/%.ML)
   135 
   163 
   136 MiniML: $(BIN)/HOL  $(MINIML_FILES)
   164 MiniML: $(BIN)/HOL  $(MINIML_FILES)
   137 	echo 'exit_use_dir"MiniML";quit();' | $(LOGIC)
   165 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   166         then echo 'make_html := true; exit_use_dir"MiniML";quit();' \
       
   167                | $(LOGIC);\
       
   168         else echo 'exit_use_dir"MiniML";quit();' | $(LOGIC); \
       
   169         fi
   138 
   170 
   139 ##Lexical analysis
   171 ##Lexical analysis
   140 LEX_FILES = Auto AutoChopper Chopper Prefix
   172 LEX_FILES = Auto AutoChopper Chopper Prefix
   141 
   173 
   142 LEX_FILES = Lex/ROOT.ML \
   174 LEX_FILES = Lex/ROOT.ML \
   143             $(LEX_NAMES:%=Lex/%.thy) $(LEX_NAMES:%=Lex/%.ML)
   175             $(LEX_NAMES:%=Lex/%.thy) $(LEX_NAMES:%=Lex/%.ML)
   144 
   176 
   145 Lex:	$(BIN)/HOL  $(LEX_FILES)
   177 Lex:	$(BIN)/HOL  $(LEX_FILES)
   146 	echo 'exit_use_dir"Lex";quit();' | $(LOGIC)
   178 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   179         then echo 'make_html := true; exit_use_dir"Lex";quit();' | $(LOGIC);\
       
   180         else echo 'exit_use_dir"Lex";quit();' | $(LOGIC); \
       
   181         fi
   147 
   182 
   148 ##Miscellaneous examples
   183 ##Miscellaneous examples
   149 EX_NAMES = LexProd MT Acc PropLog Puzzle Qsort LList Rec Simult Term String \
   184 EX_NAMES = LexProd MT Acc PropLog Puzzle Qsort LList Rec Simult Term String \
   150 	   BT Perm
   185 	   BT Perm
   151 
   186 
   152 EX_FILES = ex/ROOT.ML ex/cla.ML ex/meson.ML ex/mesontest.ML ex/rel.ML \
   187 EX_FILES = ex/ROOT.ML ex/cla.ML ex/meson.ML ex/mesontest.ML ex/rel.ML \
   153            ex/set.ML $(EX_NAMES:%=ex/%.thy) $(EX_NAMES:%=ex/%.ML)
   188            ex/set.ML $(EX_NAMES:%=ex/%.thy) $(EX_NAMES:%=ex/%.ML)
   154 
   189 
   155 ex:     $(BIN)/HOL  $(EX_FILES)
   190 ex:     $(BIN)/HOL  $(EX_FILES)
   156 	echo 'exit_use_dir"ex";quit();' | $(LOGIC)
   191 	if [ "$${MAKE_HTML-undefined}" != "undefined" ]; \
       
   192         then echo 'make_html := true; exit_use_dir"ex";quit();' | $(LOGIC);\
       
   193         else echo 'exit_use_dir"ex";quit();' | $(LOGIC); \
       
   194         fi
   157 
   195 
   158 #Full test.
   196 #Full test.
   159 test:   $(BIN)/HOL IMP Hoare Lex Integ Subst Lambda MiniML IOA ex
   197 test:   $(BIN)/HOL IMP Hoare Lex Integ Subst Lambda MiniML IOA ex
   160 	echo 'Test examples ran successfully' > test
   198 	echo 'Test examples ran successfully' > test
   161 
   199