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