File: Makefile

package info (click to toggle)
ott 0.32%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,420 kB
  • sloc: ml: 25,065; makefile: 1,393; awk: 736; lisp: 183; sh: 14; sed: 4
file content (200 lines) | stat: -rw-r--r-- 9,183 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
topdir = ../..
ott_coq_lib_dir = $(topdir)/coq
ott_hol_lib_dir = $(topdir)/hol

COQC = coqc
COQDEP = coqdep
COQ_INCLUDE = -I $(ott_coq_lib_dir)
COQC_FLAGS =
DVIPS = dvips
HOLMAKE = Holmake
HOLMAKE_FLAGS = -I $(ott_hol_lib_dir)
ISABELLE = isabelle
ISABELLE_FLAGS = -q
ISABELLE_WRAPPER = use_thy "$*" handle e => (TextIO.output (TextIO.stdErr, "Isabelled failed: " ^ exnMessage e ^ "\n"); OS.Process.exit OS.Process.failure)
LATEX = latex
OTT = $(topdir)/src/ott
OTT_FLAGS = -merge true #-show_defns false -show_sort false
PDFLATEX = pdflatex

# NB THIS SHOULD BE IN SYNC WITH THE SYS_ROUGHLYFULLSIMPLE DEFINITION IN src/Makefile 
# AND sys-roughlyfullsimple IN src/regression.otl
SOURCES = \
common.ott \
common_index.ott \
common_labels.ott \
common_typing.ott \
bool.ott \
bool_typing.ott \
nat.ott \
nat_typing.ott \
arrow_typing.ott \
basety.ott \
unit.ott \
seq.ott \
ascribe.ott \
let.ott \
product.ott \
sum.ott \
fix.ott \
tuple.ott \
variant.ott
#record.ott

records_sources = \
	common.ott common_index.ott common_labels.ott common_typing.ott \
	bool.ott bool_typing.ott \
	nat.ott nat_typing.ott \
	arrow_typing.ott basety.ott \
	unit.ott seq.ott ascribe.ott let.ott \
	product.ott sum.ott fix.ott \
	tuple.ott record.ott variant.ott

isa_objects = stlc stlc_metatheory

coq_ott_libs = $(ott_coq_lib_dir)/ott_list
coq_stlc_libs = $(coq_ott_libs) stlc_tactics
coq_stlc_objects = $(coq_stlc_libs) \
	stlc_auto stlc_base stlc_terms \
	stlc_environments stlc_typing stlc_soundness
coq_oldlists_objects = $(coq_stlc_libs) \
	records_oldlists_auto
coq_records_common = $(coq_stlc_libs) \
	records_auto records_base records_terms records_environments
coq_records_objects = $(coq_records_common) \
	records_hand_red records_hand_typing_fl \
	records_typing records_soundness
coq_pf_objects = $(coq_records_common) \
	records_hand_red records_hand_typing_pf \
	records_pf_typing records_pf_soundness
coq_equiv_objects = $(coq_stlc_libs) \
	records_auto records_base records_equiv_common \
	records_equiv_red records_equiv_typing_fl records_equiv_typing_pf
coq_misc_objects = records_quickies records_tick

default: so
ott: stlc.tex stlc_auto.v stlcScript.sml stlc.thy \
	records.tex records_auto.v recordsScript.sml records.thy
coq-stlc: $(coq_stlc_objects:=.vo)
coq-oldlists: $(coq_oldlists_objects:=.vo)
coq-records: $(coq_records_objects:=.vo)
coq-pf: $(coq_pf_objects:=.vo)
coq-equiv: $(coq_equiv_objects:=.vo)
coq-misc: $(coq_misc_objects:=.vo)
coq: coq-pf
coq-world: coq-stlc coq-records coq-pf coq-equiv coq-misc coq-oldlists
hol: metatheoryTheory.uo
isa: $(isa_objects:=.isa)
# N.B. isa currently requires a CVS version of Isabelle (Isabelle 2005 fails)
all: ott stlc.ps coq hol
world: all stlc.pdf coq-world hol isa

#### Scott's targets ####
so: stlcScript.sml metatheoryScript.sml stlc.pdf
	$(HOLMAKE) $(HOLMAKE_FLAGS)

#### Tom's targets  #####
tom: stlc.thy stlc.pdf

#### ott ###
records.tex records_auto.v recordsScript.sml records.thy: $(records_sources) $(OTT)
	$(OTT) $(OTT_FLAGS) -merge true -coq_expand_list_types false -o records.tex -o records_auto.v -o recordsScript.sml -o records.thy $(records_sources)
records_oldlists_auto.v: $(records_sources) $(OTT)
	$(OTT) $(OTT_FLAGS) -merge true -coq_expand_list_types true -o $@ $(records_sources)
stlc.tex stlc_auto.v stlcScript.sml stlc.thy: $(SOURCES) $(OTT)
	$(OTT) $(OTT_FLAGS) -merge true -coq_expand_list_types true -o stlc.tex -o stlc_auto.v -o stlcScript.sml -o stlc.thy $(SOURCES)

#### TeX ####
.SUFFIXES: .tex .dvi .ps .pdf
.tex.dvi:
	$(LATEX) $<
.dvi.ps:
	$(DVIPS) -o $@ $<
.tex.pdf:
	$(PDFLATEX) $<

#### Hol ####
hol_libs = $(ott_hol_lib_dir)/ottLib $(ott_hol_lib_dir)/ottTheory
hol_libs: $(hol_libs:=.ui) $(hol_libs:=.uo)
$(hol_libs:=.ui) $(hol_libs:=.uo): %:
	cd $(@D) && $(MAKE) $(@F)
%Theory.uo: %Script.sml hol_libs
	$(HOLMAKE) $(HOLMAKE_FLAGS) $@

#### Isabelle ####
.SUFFIXES: .thy .isa
.thy.isa:
	$(ISABELLE) $(ISABELLE_FLAGS) -e '$(ISABELLE_WRAPPER)'

#### Coq ####
coq_libs: $(coq_ott_libs:=.vo)
$(coq_ott_libs:=.vo):
	cd $(ott_coq_lib_dir) && $(MAKE) $(@F)
.SUFFIXES: .v .vo
.v.vo:
	$(COQC) $(COQ_INCLUDE) $(COQC_FLAGS) $<

#### Administrative targets ####
clean:
	rm -f stlc.tex stlcScript.sml auto[-_]* *[-_.]auto[-_.]*
	rm -f *.aux *.log *.dvi *.ps *.pdf
	rm -f *.vo
	rm -f stlcTheory.sig stlcTheory.sml metatheoryTheory.sml metatheoryTheory.sig *.uo *.ui

#### Dependencies ####
dep: .depend
	sed -e '/^#### AUTOMATICALLY GENERATED BY make dep, DO NOT CHANGE THIS LINE ####$$/q' <Makefile >Makefile.tmp
	cat .depend >>Makefile.tmp
	mv -f Makefile .Makefile.old
	mv -f Makefile.tmp Makefile
.depend: force
	: >.depend.tmp
	$(COQDEP) -I . -I $(ott_coq_lib_dir) *.v >.depend.coq.tmp
	sed -e '/^_ott_coqrc\.vo:/d' -e 's/ _ott_coqrc\.v/& $$(ott_coqrc_deps)/' <.depend.coq.tmp >>.depend.tmp
	rm .depend.coq.tmp
	mv .depend.tmp .depend
force:

# TeX dependencies, mentioned so as not to run afoul of the make
# feature whereby it deletes intermediate files.
records.tex:
stlc.tex:
records.dvi:
stlc.dvi:

# ott_coqrc_deps must list the dependencies of _ott_coqrc.vo, because
# coqdep would miss them (see _ott_coqrc.v).
ott_coqrc_deps = $(coq_ott_libs:=.vo)
stlc_coq_prelude = $(ott_coqrc_deps)
# stlc_coq_prelude is used by the regression tests and must depend on
# the .vo files that are required to build any ott-generated stlc .v.
stlc_coq_prelude: $(stlc_coq_prelude)

#### AUTOMATICALLY GENERATED BY make dep, DO NOT CHANGE THIS LINE ####
records_auto.vo: records_auto.v ../../coq/ott_list.vo _ott_coqrc.v $(ott_coqrc_deps) ../../coq/ott_list_flat_map.vo
records_base.vo: records_base.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo
records_environments.vo: records_environments.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo
records_equiv_common.vo: records_equiv_common.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo
records_equiv_red.vo: records_equiv_red.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_equiv_common.vo records_hand_red.vo
records_equiv_typing_fl.vo: records_equiv_typing_fl.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_equiv_common.vo records_hand_typing_fl.vo
records_equiv_typing_pf.vo: records_equiv_typing_pf.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_hand_typing_fl.vo records_hand_typing_pf.vo
records_hand_red.vo: records_hand_red.v _ott_coqrc.v $(ott_coqrc_deps) records_auto.vo records_base.vo
records_hand_typing_fl.vo: records_hand_typing_fl.v _ott_coqrc.v $(ott_coqrc_deps) records_auto.vo records_base.vo
records_hand_typing_pf.vo: records_hand_typing_pf.v _ott_coqrc.v $(ott_coqrc_deps) records_auto.vo records_base.vo
records_oldlists_auto.vo: records_oldlists_auto.v _ott_coqrc.v $(ott_coqrc_deps) ../../coq/ott_list_flat_map.vo
records_pf_soundness.vo: records_pf_soundness.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_terms.vo records_environments.vo records_hand_red.vo records_hand_typing_pf.vo records_pf_typing.vo
records_pf_typing.vo: records_pf_typing.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_terms.vo records_environments.vo records_hand_typing_pf.vo
records_quickies.vo: records_quickies.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_environments.vo records_hand_red.vo records_hand_typing_pf.vo
records_run.vo: records_run.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_terms.vo records_environments.vo records_hand_red.vo records_hand_typing_pf.vo
records_soundness.vo: records_soundness.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_terms.vo records_environments.vo records_hand_red.vo records_hand_typing_fl.vo records_typing.vo
records_terms.vo: records_terms.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo
records_tick.vo: records_tick.v _ott_coqrc.v $(ott_coqrc_deps) records_auto.vo records_base.vo records_pf_soundness.vo records_hand_red.vo records_hand_typing_pf.vo records_equiv_red.vo records_equiv_typing_pf.vo records_equiv_typing_fl.vo
records_typing.vo: records_typing.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo records_auto.vo records_base.vo records_terms.vo records_environments.vo records_hand_typing_fl.vo
stlc_auto.vo: stlc_auto.v _ott_coqrc.v $(ott_coqrc_deps) ../../coq/ott_list_flat_map.vo
stlc_base.vo: stlc_base.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo stlc_auto.vo
stlc_environments.vo: stlc_environments.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo stlc_auto.vo stlc_base.vo
stlc_soundness.vo: stlc_soundness.v _ott_coqrc.v $(ott_coqrc_deps) stlc_auto.vo stlc_tactics.vo stlc_base.vo stlc_terms.vo stlc_environments.vo stlc_typing.vo
stlc_tactics.vo: stlc_tactics.v
stlc_terms.vo: stlc_terms.v _ott_coqrc.v $(ott_coqrc_deps) stlc_tactics.vo stlc_auto.vo stlc_base.vo
stlc_typing.vo: stlc_typing.v _ott_coqrc.v $(ott_coqrc_deps) stlc_auto.vo stlc_tactics.vo stlc_base.vo stlc_terms.vo stlc_environments.vo
wet_massaged.vo: wet_massaged.v