5 REQUIRES = unix str helm-ng_kernel
7 OCAMLOPTIONS = -rectypes
11 CLEAN = etc/log.txt etc/profile.txt
13 TAGS = test-si-fast test-si test2-opt test2-byte test3 test6 \
14 profile-fast profile profile-coq profile-coq-byte \
15 xml-si xml-si-v3 xml xml-v3 \
16 export-coq export-matita \
17 export-lp1 export-lp2 export-tj2 export-tj3 \
20 TIME = `which time` -p -a -o etc/log.txt
22 NULL = >/dev/null 2>&1
26 MATITAC = ../../../../matita/matita/matitac.opt
28 MATITA = ../../../../matita/matita/matita.opt
30 XMLDIR = ../../www/lambdadelta
32 INPUT = examples/automath/grundlagen_2.aut
34 INPUTFAST = examples/automath/grundlagen_1.aut
38 LP1 = grundlagen_21.elpi
39 LP2 = grundlagen_22.elpi
40 TJ2 = grundlagen_22.mod
41 TJ2 = grundlagen_23.mod
43 PREAMBLE_MA = ../matita/matita.ma.templ
44 PREAMBLE_V = coq/grundlagen.template
45 PREAMBLE_LP = lp/lp.template
47 ALL_FEATURES = LEXER PARSER TRACE SUMMARY EXPAND MANAGER OBJECTS PREPROCESS QUOTE STAGE TYPE
49 TEST1 = -T 1 -l -u -1 $(O) $(INPUT)
51 TEST2 = -X -T 2 -l -1 $(O) $(INPUT)
53 all: .depend.opt .depend.byte
54 @$(CALLMAKE) $(MAIN).opt F="$(ALL_FEATURES)"
55 @$(CALLMAKE) $(MAIN).byte F="$(ALL_FEATURES)"
58 @$(CALLMAKE) F="$(ALL_FEATURES)" $(MAIN).opt
61 @$(CALLMAKE) F="$(ALL_FEATURES)" $(MAIN).byte
63 test-si-fast: $(MAIN).opt etc
64 @echo " HELENA -q -u -x -y -1 $(INPUTFAST)"
65 $(H)./$(MAIN).opt -T 1 -q -u -x -y -1 $(O) $(INPUTFAST) > etc/log.txt
67 test-si: $(MAIN).opt etc
68 @echo " HELENA -d -l -u -0 $(INPUT)"
69 $(H)./$(MAIN).opt -T 2 -d -l -u -0 $(O) $(INPUT) > etc/log.txt
71 test1: $(MAIN).opt etc
72 @echo " HELENA -l -u -1 $(INPUT)"
73 $(H)./$(MAIN).opt $(TEST1) > etc/log.txt
75 test2-opt: $(MAIN).opt etc
76 @echo " HELENA -l -1 $(INPUT)"
77 $(H)./$(MAIN).opt $(TEST1) $(TEST2) > etc/log.txt
79 test2-byte: $(MAIN).byte etc
80 @echo " HELENA -l -1 $(INPUT)"
81 $(H)./$(MAIN).byte $(TEST1) $(TEST2) > etc/log.txt
83 test3: $(MAIN).opt etc
84 @echo " HELENA -T 3 -l $(INPUT)"
85 $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -T 3 -l $(O) $(INPUT) > etc/log.txt
87 test6: $(MAIN).opt etc
88 @echo " HELENA -T 6 -l $(INPUT)"
89 $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -T 6 -l $(O) $(INPUT) > etc/log.txt
91 profile-fast: $(MAIN).opt etc
92 @echo " HELENA -q -u -x $(INPUTFAST) (31 TIMES)"
94 $(H)for T in `seq 31`; do ./$(MAIN).opt -T 1 -q -u -x -1 $(O) $(INPUTFAST) >> etc/log.txt; done
95 $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt
97 profile: $(MAIN).opt etc
98 @echo " HELENA -l -u $(INPUT) (31 TIMES)"
100 $(H)for _ in `seq 31`; do ./$(MAIN).opt $(TEST1) >> etc/log.txt; done
101 $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt
103 profile-opt: $(MAIN).opt etc
104 @echo " HELENA -l $(INPUT) (31 TIMES)"
105 $(H)rm -f etc/log.txt
106 $(H)for _ in `seq 31`; do ./$(MAIN).opt $(TEST1) $(TEST2) >> etc/log.txt; done
107 $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt
109 profile-byte: $(MAIN).byte etc
110 @echo " HELENA -l $(INPUT) (31 TIMES)"
111 $(H)rm -f etc/log.txt
112 $(H)for _ in `seq 31`; do ./$(MAIN).byte $(TEST1) $(TEST2) >> etc/log.txt; done
113 $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt
115 profile-coq: $(MAIN).opt etc
116 @echo " COQTOP $(V) (31 TIMES)"
117 $(H)rm -f etc/log.txt
118 $(H)for _ in `seq 31`; do echo Load \"coq/$(V)\". | $(TIME) $(COQTOP) -q $(NULL); done
119 $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt
121 profile-coq-byte: $(MAIN).opt etc
122 @echo " COQTOP $(V) (31 TIMES)"
123 $(H)rm -f etc/log.txt
124 $(H)for _ in `seq 31`; do echo Load \"coq/$(V)\". | $(TIME) $(COQTOP).byte -q $(NULL); done
125 $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt
127 xml-si: $(MAIN).opt etc
128 @echo " HELENA -l -o -s 1 -u -y $(INPUT)"
129 $(H)./$(MAIN).opt -O $(XMLDIR) -T 1 -l -o -s 1 -u -y $(O) $(INPUT) > etc/log.txt
131 xml-si-v3: $(MAIN).opt etc
132 @echo " HELENA -l -o -s 2 -u -y $(INPUT)"
133 $(H)./$(MAIN).opt -O $(XMLDIR) -T 1 -l -o -s 2 -u -y $(O) $(INPUT) > etc/log.txt
136 @echo " HELENA -l -o -s 1 -y $(INPUT)"
137 $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -s 1 -y $(O) $(INPUT) > etc/log.txt
139 xml-v3: $(MAIN).opt etc
140 @echo " HELENA -l -o -s 2 $(INPUT)"
141 $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -s 2 -y $(O) $(INPUT) > etc/log.txt
143 export-coq coq/$(V): $(MAIN).opt etc
144 @echo " HELENA -m V8 $(INPUT)"
145 $(H)./$(MAIN).opt -a n -m V8 -p $(PREAMBLE_V) $(TEST1) > etc/log.txt
147 export-matita matita/$(MA): $(MAIN).opt etc
148 @echo " HELENA -m MA2 $(INPUT)"
149 $(H)./$(MAIN).opt -a n -m MA2 -p $(PREAMBLE_MA) $(TEST1) > etc/log.txt
151 export-lp1 lp/$(LP1): $(MAIN).opt etc
152 @echo " HELENA -m LP1 $(INPUT)"
153 $(H)./$(MAIN).opt -a n -m LP1 -p $(PREAMBLE_LP) $(TEST1) > etc/log.txt
155 export-lp2 lp/$(LP2): $(MAIN).opt etc
156 @echo " HELENA -m LP2 $(INPUT)"
157 $(H)./$(MAIN).opt -a n -m LP2 -p $(PREAMBLE_LP) $(TEST1) > etc/log.txt
159 export-tj2 lp/$(TJ2): $(MAIN).opt etc
160 @echo " HELENA -m TJ2 $(INPUT)"
161 $(H)./$(MAIN).opt -a n -m TJ2 -p $(PREAMBLE_LP) $(TEST1) > etc/log.txt
163 export-tj3 lp/$(TJ3): $(MAIN).opt etc
164 @echo " HELENA -m TJ3 $(INPUT)"
165 $(H)./$(MAIN).opt -a n -m TJ3 -p $(PREAMBLE_LP) $(TEST1) > etc/log.txt
168 @echo " MATITA $(MA)"
169 $(H)cd matita && $(MATITA) $(MA)
171 matitac: matita/$(MA)
172 @echo " MATITAC $(MA)"
173 $(H)cd matita && $(MATITAC) $(MA)
175 #profile-matita: $(MAIN).opt etc
176 # @echo " HELENA -u $(INPUT) (1 TIMES)"
177 # $(H)rm -f etc/log.txt
178 # $(H)for T in `seq 1`; do ./$(MAIN).opt -T 1 -a n -l -m $(PREAMBLE) -o -u $(INPUT) >> etc/log.txt; done
179 # $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile-new.txt
181 include Makefile.common