#
# $Id$
#
# IsaMakefile for HOLCF
#
#### Base system
OUT = $(ISABELLE_OUTPUT)
THYS = Porder.thy Porder0.thy Pcpo.thy \
Fun1.thy Fun2.thy Fun3.thy \
Cfun1.thy Cfun2.thy Cfun3.thy Cont.thy \
Cprod1.thy Cprod2.thy Cprod3.thy \
Sprod0.thy Sprod1.thy Sprod2.thy Sprod3.thy \
Ssum0.thy Ssum1.thy Ssum2.thy Ssum3.thy \
Up1.thy Up2.thy Up3.thy Fix.thy \
One.thy Tr.thy\
Discrete0.thy Discrete1.thy Discrete.thy\
Lift1.thy Lift2.thy Lift3.thy Lift.thy HOLCF.thy
ONLYTHYS =
FILES = ROOT.ML $(THYS) $(ONLYTHYS) $(THYS:.thy=.ML) \
ax_ops/holcflogic.ML ax_ops/thy_axioms.ML \
ax_ops/thy_ops.ML ax_ops/thy_syntax.ML \
domain/library.ML domain/syntax.ML domain/axioms.ML \
domain/theorems.ML domain/extender.ML domain/interface.ML
$(OUT)/HOLCF: $(OUT)/HOL $(FILES)
@$(ISATOOL) usedir -b $(OUT)/HOL HOLCF
$(OUT)/HOL:
@cd ../HOL; $(ISATOOL) make
#### Tests and examples
## IOA meta theory and examples
IOA_FILES = IOA/ROOT.ML IOA/meta_theory/Traces.thy \
IOA/meta_theory/Asig.ML IOA/meta_theory/Asig.thy \
IOA/meta_theory/CompoScheds.thy IOA/meta_theory/CompoExecs.ML \
IOA/meta_theory/CompoTraces.thy IOA/meta_theory/CompoScheds.ML \
IOA/meta_theory/CompoTraces.ML IOA/meta_theory/Sequence.ML \
IOA/meta_theory/Seq.thy IOA/meta_theory/RefCorrectness.thy \
IOA/meta_theory/Automata.thy IOA/meta_theory/Traces.ML \
IOA/meta_theory/Seq.ML IOA/meta_theory/RefMappings.ML \
IOA/meta_theory/ShortExecutions.thy IOA/meta_theory/ShortExecutions.ML \
IOA/meta_theory/IOA.thy IOA/meta_theory/IOA.ML \
IOA/meta_theory/Sequence.thy IOA/meta_theory/Automata.ML \
IOA/meta_theory/CompoExecs.thy IOA/meta_theory/RefMappings.thy \
IOA/meta_theory/RefCorrectness.ML IOA/meta_theory/Compositionality.ML \
IOA/meta_theory/Compositionality.thy
IOA_ABP_FILES = IOA/ABP/Abschannel.thy \
IOA/ABP/Abschannel_finite.thy IOA/ABP/Action.ML \
IOA/ABP/Action.thy IOA/ABP/Check.ML \
IOA/ABP/Correctness.ML IOA/ABP/Correctness.thy \
IOA/ABP/Env.thy IOA/ABP/Impl.thy \
IOA/ABP/Impl_finite.thy IOA/ABP/Lemmas.ML \
IOA/ABP/Lemmas.thy IOA/ABP/Packet.thy \
IOA/ABP/ROOT.ML IOA/ABP/Receiver.thy \
IOA/ABP/Sender.thy IOA/ABP/Spec.thy
IOA_NTP_FILES = IOA/NTP/Abschannel.ML \
IOA/NTP/Abschannel.thy IOA/NTP/Action.ML \
IOA/NTP/Action.thy IOA/NTP/Correctness.ML \
IOA/NTP/Correctness.thy IOA/NTP/Impl.ML \
IOA/NTP/Impl.thy IOA/NTP/Lemmas.ML \
IOA/NTP/Lemmas.thy IOA/NTP/Multiset.ML \
IOA/NTP/Multiset.thy IOA/NTP/Packet.ML \
IOA/NTP/Packet.thy IOA/NTP/ROOT.ML \
IOA/NTP/Receiver.ML IOA/NTP/Receiver.thy \
IOA/NTP/Sender.ML IOA/NTP/Sender.thy \
IOA/NTP/Spec.thy
IOA: $(OUT)/HOLCF $(IOA_FILES)
@cd IOA; $(ISATOOL) usedir -b $(OUT)/HOLCF IOA
IOA_ABP: $(OUT)/IOA $(IOA_ABP_FILES)
@cd IOA; $(ISATOOL) usedir $(OUT)/IOA ABP
IOA_NTP: $(OUT)/IOA $(IOA_NTP_FILES)
@cd IOA; $(ISATOOL) usedir $(OUT)/IOA NTP
## IMP
IMP_THYS = IMP/Denotational.thy
IMP_FILES = IMP/ROOT.ML $(IMP_THYS) $(IMP_THYS:.thy=.ML)
IMP: $(OUT)/HOLCF $(IMP_FILES)
@$(ISATOOL) usedir $(OUT)/HOLCF IMP
## Miscellaneous examples
EX_THYS = ex/Dnat.thy ex/Stream.thy \
ex/Dagstuhl.thy ex/Focus_ex.thy ex/Fix2.thy \
ex/Hoare.thy ex/Loop.thy
EX_FILES = ex/ROOT.ML ex/loeckx.ML $(EX_THYS) $(EX_THYS:.thy=.ML)
ex: ex/ROOT.ML $(EX_FILES)
@$(ISATOOL) usedir $(OUT)/HOLCF ex
## Full test
test: $(OUT)/HOLCF IOA IOA_ABP IOA_NTP IMP ex
echo 'Test examples ran successfully' > test
.PRECIOUS: $(OUT)/HOL $(OUT)/HOLCF