]> matita.cs.unibo.it Git - helm.git/blob - helm/software/helena/Makefile
6194e6c4c0ace7eb89cb4398ad21977c68841c92
[helm.git] / helm / software / helena / Makefile
1 MAIN = helena
2
3 SRC  = src
4
5 REQUIRES = unix str helm-ng_kernel
6
7 OCAMLOPTIONS = -rectypes 
8
9 KEEP = README
10
11 CLEAN = etc/log.txt etc/profile.txt
12
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 \
18        matita matitac
19
20 TIME = `which time` -p -a -o etc/log.txt
21
22 NULL = >/dev/null 2>&1 
23
24 COQTOP = coqtop
25
26 MATITAC = ../../../../matita/matita/matitac.opt
27
28 MATITA = ../../../../matita/matita/matita.opt
29
30 XMLDIR = ../../www/lambdadelta
31
32 INPUT = examples/automath/grundlagen_2.aut
33
34 INPUTFAST = examples/automath/grundlagen_1.aut
35
36 OUTPUT = scripts
37
38 MA  = grundlagen_2.ma
39 V   = grundlagen_2.v
40 LP1 = grundlagen_21.elpi
41 LP2 = grundlagen_22.elpi
42 TJ2 = grundlagen_22.mod
43 TJ3 = grundlagen_23.mod
44
45 PREAMBLE_MA = ../matita/matita.ma.templ
46 PREAMBLE_V  = $(OUTPUT)/coq/grundlagen.template
47 PREAMBLE_LP = $(OUTPUT)/lp/lp.template
48
49 ALL_FEATURES = LEXER PARSER TRACE SUMMARY EXPAND MANAGER OBJECTS PREPROCESS QUOTE STAGE TYPE
50
51 TEST1 = -T 1 -l -u -1 $(O) $(INPUT)
52
53 TEST2 = -X -T 2 -l -1 $(O) $(INPUT)
54
55 all: .depend.opt .depend.byte
56         @$(CALLMAKE) $(MAIN).opt F="$(ALL_FEATURES)"
57         @$(CALLMAKE) $(MAIN).byte F="$(ALL_FEATURES)"
58
59 opt: .depend.opt
60         @$(CALLMAKE) F="$(ALL_FEATURES)" $(MAIN).opt
61
62 byte: .depend.byte
63         @$(CALLMAKE) F="$(ALL_FEATURES)" $(MAIN).byte
64
65 test-si-fast: $(MAIN).opt etc
66         @echo "  HELENA -u -x -y -1 $(INPUTFAST)"
67         $(H)./$(MAIN).opt -T 1 -u -x -y -1 $(O) $(INPUTFAST) > etc/log.txt
68
69 test-si: $(MAIN).opt etc
70         @echo "  HELENA -d -l -u -0 $(INPUT)"
71         $(H)./$(MAIN).opt -T 2 -d -l -u -0 $(O) $(INPUT) > etc/log.txt
72
73 test1: $(MAIN).opt etc
74         @echo "  HELENA -l -u -1 $(INPUT)"
75         $(H)./$(MAIN).opt $(TEST1) > etc/log.txt
76
77 test2-opt: $(MAIN).opt etc
78         @echo "  HELENA -l -1 $(INPUT)"
79         $(H)./$(MAIN).opt $(TEST1) $(TEST2) > etc/log.txt
80
81 test2-byte: $(MAIN).byte etc
82         @echo "  HELENA -l -1 $(INPUT)"
83         $(H)./$(MAIN).byte $(TEST1) $(TEST2) > etc/log.txt
84
85 test3: $(MAIN).opt etc
86         @echo "  HELENA -T 3 -l $(INPUT)"
87         $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -T 3 -l $(O) $(INPUT) > etc/log.txt
88
89 test6: $(MAIN).opt etc
90         @echo "  HELENA -T 6 -l $(INPUT)"
91         $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -T 6 -l $(O) $(INPUT) > etc/log.txt
92
93 profile-fast: $(MAIN).opt etc
94         @echo "  HELENA -u -x -y -1 $(INPUTFAST) (31 TIMES)"
95         $(H)rm -f etc/log.txt
96         $(H)for T in `seq 31`; do ./$(MAIN).opt -T 1 -u -x -y -1 $(O) $(INPUTFAST) >> etc/log.txt; done
97         $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt
98
99 profile: $(MAIN).opt etc
100         @echo "  HELENA -l -u -1 $(INPUT) (31 TIMES)"
101         $(H)rm -f etc/log.txt
102         $(H)for _ in `seq 31`; do ./$(MAIN).opt $(TEST1) >> etc/log.txt; done
103         $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt
104
105 profile-opt: $(MAIN).opt etc
106         @echo "  HELENA -l -1 $(INPUT) (31 TIMES)"
107         $(H)rm -f etc/log.txt
108         $(H)for _ in `seq 31`; do ./$(MAIN).opt $(TEST1) $(TEST2) >> etc/log.txt; done
109         $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt
110
111 profile-byte: $(MAIN).byte etc
112         @echo "  HELENA -l -1 $(INPUT) (31 TIMES)"
113         $(H)rm -f etc/log.txt
114         $(H)for _ in `seq 31`; do ./$(MAIN).byte $(TEST1) $(TEST2) >> etc/log.txt; done
115         $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt
116
117 profile-coq: $(MAIN).opt etc
118         @echo "  COQTOP $(V) (31 TIMES)"
119         $(H)rm -f etc/log.txt
120         $(H)for _ in `seq 31`; do echo Load \"$(OUTPUT)/coq/$(V)\". | $(TIME) $(COQTOP) -q $(NULL); done
121         $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt
122
123 profile-coq-byte: $(MAIN).opt etc
124         @echo "  COQTOP $(V) (31 TIMES)"
125         $(H)rm -f etc/log.txt
126         $(H)for _ in `seq 31`; do echo Load \"$(OUTPUT)/coq/$(V)\". | $(TIME) $(COQTOP).byte -q $(NULL); done
127         $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt
128
129 xml-si: $(MAIN).opt etc
130         @echo "  HELENA -l -o -q -s 1 -u -y $(INPUT)"
131         $(H)./$(MAIN).opt -O $(XMLDIR) -T 1 -l -o -q -s 1 -u -y $(O) $(INPUT) > etc/log.txt
132
133 xml-si-v3: $(MAIN).opt etc
134         @echo "  HELENA -l -o -q -s 2 -u -y $(INPUT)"
135         $(H)./$(MAIN).opt -O $(XMLDIR) -T 1 -l -o -q -s 2 -u -y $(O) $(INPUT) > etc/log.txt
136
137 xml: $(MAIN).opt etc
138         @echo "  HELENA -l -o -q -s 1 -y $(INPUT)"
139         $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -q -s 1 -y $(O) $(INPUT) > etc/log.txt
140
141 xml-v3: $(MAIN).opt etc
142         @echo "  HELENA -l -o -q -s 2 -y $(INPUT)"
143         $(H)./$(MAIN).opt -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -q -s 2 -y $(O) $(INPUT) > etc/log.txt
144
145 export-coq $(OUTPUT)/coq/$(V): $(MAIN).opt etc
146         @echo "  HELENA -m V8 -q $(INPUT)"
147         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m V8 -p $(PREAMBLE_V) -q $(TEST1) > etc/log.txt
148
149 export-matita $(OUTPUT)/matita/$(MA): $(MAIN).opt etc
150         @echo "  HELENA -m MA2 -q $(INPUT)"
151         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m MA2 -p $(PREAMBLE_MA) -q $(TEST1) > etc/log.txt
152
153 export-lp1 $(OUTPUT)/lp/$(LP1): $(MAIN).opt etc
154         @echo "  HELENA -m LP1 -q $(INPUT)"
155         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m LP1 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt
156
157 export-lp2 $(OUTPUT)/lp/$(LP2): $(MAIN).opt etc
158         @echo "  HELENA -m LP2 -q $(INPUT)"
159         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m LP2 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt
160
161 export-tj2 $(OUTPUT)/lp/$(TJ2): $(MAIN).opt etc
162         @echo "  HELENA -m TJ2 -q $(INPUT)"
163         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m TJ2 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt
164
165 export-tj3 $(OUTPUT)/lp/$(TJ3): $(MAIN).opt etc
166         @echo "  HELENA -m TJ3 -q $(INPUT)"
167         $(H)./$(MAIN).opt -M $(OUTPUT) -a n -m TJ3 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt
168
169 matita: $(OUTPUT)/matita/$(MA)
170         @echo "  MATITA $(MA)"
171         $(H)cd matita && $(MATITA) $(MA)
172
173 matitac: $(OUTPUT)/matita/$(MA)
174         @echo "  MATITAC $(MA)"
175         $(H)cd matita && $(MATITAC) $(MA)
176
177 #profile-matita: $(MAIN).opt etc
178 #       @echo "  HELENA -u $(INPUT) (1 TIMES)"
179 #       $(H)rm -f etc/log.txt
180 #       $(H)for T in `seq 1`; do ./$(MAIN).opt -T 1 -M $(OUTPUT) -a n -l -m $(PREAMBLE) -o -u $(INPUT) >> etc/log.txt; done
181 #       $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile-new.txt
182
183 include Makefile.common