X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fhelena%2FMakefile;h=38dab9e6b1d929f8d26cb76b11f385e30c2ff0c3;hb=88977b2d546e547e23b046792fe2ad8f6ff192a4;hp=9c1df551ff8cb2ee8665bec072b592979b073c50;hpb=a8a42ce5976221949b3999446eebc5d5457b81bd;p=helm.git diff --git a/helm/software/helena/Makefile b/helm/software/helena/Makefile index 9c1df551f..38dab9e6b 100644 --- a/helm/software/helena/Makefile +++ b/helm/software/helena/Makefile @@ -1,41 +1,191 @@ -MAIN = helena - SRC = src +DIRECTORIES = $(shell find $(SRC) -type d) + +ALL_FEATURES = LEXER PARSER TRACE SUMMARY EXPAND MANAGER OBJECTS PREPROCESS QUOTE STAGE TYPE + +FF = $(F:ALL=$(ALL_FEATURES)) + +EXEC = helena + REQUIRES = unix str helm-ng_kernel OCAMLOPTIONS = -rectypes +CAMLPOPTIONS = $(FF:%=-D%) + +BUILDOPTIONS = -Is "$(DIRECTORIES)" + KEEP = README CLEAN = etc/log.txt etc/profile.txt -TAGS = test-si test-si-fast profile xml-si xml-si-crg +TARGETS = test-si-fast test-si test2-opt test2-byte test3 test6 \ + profile-fast profile profile-coq profile-coq-byte \ + xml-si xml-si-v3 xml xml-v3 \ + export-coq export-matita \ + export-lp1 export-lp2 export-tj2 export-tj3 export-lyp \ + matita matitac include Makefile.common -XMLDIR = $(HOME)/svn/helm-stable/www/lambdadelta +TIME = `which time` -p -a -o etc/log.txt + +NULL = >/dev/null 2>&1 + +COQTOP = coqtop + +MATITAC = ../../../../matita/matita/matitac.opt + +MATITA = ../../../../matita/matita/matita.opt + +XMLDIR = ../../www/lambdadelta + +INPUT = examples/automath/grundlagen_2.aut + +INPUTFAST = examples/automath/grundlagen_1.aut + +OUTPUT = scripts + +MA = grundlagen_2.ma +V = grundlagen_2.v +LP1 = grundlagen_21.elpi +LP2 = grundlagen_22.elpi +TJ2 = grundlagen_22.mod +TJ3 = grundlagen_23.mod +CC0 = grundlagen_20.elpi +LYP = grundlagen_2b_lyp.elpi + +PREAMBLE_MA = ../matita/matita.ma.templ +PREAMBLE_V = $(OUTPUT)/coq/grundlagen.template +PREAMBLE_LP = $(OUTPUT)/lp/lp.template + +TEST1 = -T 1 -l -u -1 $(O) $(INPUT) + +TEST2 = -X -T 2 -l -1 $(O) $(INPUT) + +test-si-fast: $(EXEC).native etc + @echo " HELENA -u -x -y -1 $(INPUTFAST)" + $(H)./$(EXEC).native -T 1 -u -x -y -1 $(O) $(INPUTFAST) > etc/log.txt + +test-si: $(EXEC).native etc + @echo " HELENA -d -l -u -0 $(INPUT)" + $(H)./$(EXEC).native -T 2 -d -l -u -0 $(O) $(INPUT) > etc/log.txt + +test1: $(EXEC).native etc + @echo " HELENA -l -u -1 $(INPUT)" + $(H)./$(EXEC).native $(TEST1) > etc/log.txt + +test2-opt: $(EXEC).native etc + @echo " HELENA -l -1 $(INPUT)" + $(H)./$(EXEC).native $(TEST1) $(TEST2) > etc/log.txt + +test2-byte: $(EXEC).byte etc + @echo " HELENA -l -1 $(INPUT)" + $(H)./$(EXEC).byte $(TEST1) $(TEST2) > etc/log.txt + +test3: $(EXEC).native etc + @echo " HELENA -T 3 -l $(INPUT)" + $(H)./$(EXEC).native -l -u $(O) $(INPUT) -X -T 3 -l $(O) $(INPUT) > etc/log.txt + +test6: $(EXEC).native etc + @echo " HELENA -T 6 -l $(INPUT)" + $(H)./$(EXEC).native -l -u $(O) $(INPUT) -X -T 6 -l $(O) $(INPUT) > etc/log.txt + +profile-fast: $(EXEC).native etc + @echo " HELENA -u -x -y -1 $(INPUTFAST) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for T in `seq 31`; do ./$(EXEC).native -T 1 -u -x -y -1 $(O) $(INPUTFAST) >> etc/log.txt; done + $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt + +profile: $(EXEC).native etc + @echo " HELENA -l -u -1 $(INPUT) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for _ in `seq 31`; do ./$(EXEC).native $(TEST1) >> etc/log.txt; done + $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile.txt + +profile-opt: $(EXEC).native etc + @echo " HELENA -l -1 $(INPUT) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for _ in `seq 31`; do ./$(EXEC).native $(TEST1) $(TEST2) >> etc/log.txt; done + $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt + +profile-byte: $(EXEC).byte etc + @echo " HELENA -l -1 $(INPUT) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for _ in `seq 31`; do ./$(EXEC).byte $(TEST1) $(TEST2) >> etc/log.txt; done + $(H)grep "processed" etc/log.txt | sort -k 6 | uniq > etc/profile.txt + +profile-coq: etc + @echo " COQTOP $(V) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for _ in `seq 31`; do echo Load \"$(OUTPUT)/coq/$(V)\". | $(TIME) $(COQTOP) -q $(NULL); done + $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt + +profile-coq-byte: etc + @echo " COQTOP $(V) (31 TIMES)" + $(H)rm -f etc/log.txt + $(H)for _ in `seq 31`; do echo Load \"$(OUTPUT)/coq/$(V)\". | $(TIME) $(COQTOP).byte -q $(NULL); done + $(H)grep -h user etc/log.txt | sort | uniq > etc/profile.txt + +xml-si: $(EXEC).native etc + @echo " HELENA -l -o -q -s 1 -u -y $(INPUT)" + $(H)./$(EXEC).native -O $(XMLDIR) -T 1 -l -o -q -s 1 -u -y $(O) $(INPUT) > etc/log.txt + +xml-si-v3: $(EXEC).native etc + @echo " HELENA -l -o -q -s 2 -u -y $(INPUT)" + $(H)./$(EXEC).native -O $(XMLDIR) -T 1 -l -o -q -s 2 -u -y $(O) $(INPUT) > etc/log.txt + +xml: $(EXEC).native etc + @echo " HELENA -l -o -q -s 1 -y $(INPUT)" + $(H)./$(EXEC).native -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -q -s 1 -y $(O) $(INPUT) > etc/log.txt + +xml-v3: $(EXEC).native etc + @echo " HELENA -l -o -q -s 2 -y $(INPUT)" + $(H)./$(EXEC).native -l -u $(O) $(INPUT) -X -O $(XMLDIR) -T 1 -l -o -q -s 2 -y $(O) $(INPUT) > etc/log.txt + +export-coq $(OUTPUT)/coq/$(V): $(EXEC).native etc + @echo " HELENA -m V8 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m V8 -p $(PREAMBLE_V) -q $(TEST1) > etc/log.txt + +export-matita $(OUTPUT)/matita/$(MA): $(EXEC).native etc + @echo " HELENA -m MA2 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m MA2 -p $(PREAMBLE_MA) -q $(TEST1) > etc/log.txt + +export-lp1 $(OUTPUT)/lp/$(LP1): $(EXEC).native etc + @echo " HELENA -m LP1 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m LP1 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt + +export-lp2 $(OUTPUT)/lp/$(LP2): $(EXEC).native etc + @echo " HELENA -m LP2 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m LP2 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt + +export-tj2 $(OUTPUT)/lp/$(TJ2): $(EXEC).native etc + @echo " HELENA -m TJ2 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m TJ2 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt -INPUT = examples/grundlagen/grundlagen.aut +export-tj3 $(OUTPUT)/lp/$(TJ3): $(EXEC).native etc + @echo " HELENA -m TJ3 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m TJ3 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt -test-si: $(MAIN).opt etc - @echo " HELENA -p -o -c $(INPUT)" - $(H)./$(MAIN).opt -p -o -c -S 3 -O $(XMLDIR) $(O) $(INPUT) > etc/log.txt +export-cc0 $(OUTPUT)/cc/$(CC0): $(EXEC).native etc + @echo " HELENA -m CC0 -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m CC0 -p $(PREAMBLE_LP) -q $(TEST1) > etc/log.txt -test-si-fast: $(MAIN).opt etc - @echo " HELENA -o -q $(INPUT)" - $(H)./$(MAIN).opt -o -q -S 1 $(O) $(INPUT) > etc/log.txt +export-lyp $(OUTPUT)/lp/$(LYP): $(EXEC).native etc + @echo " HELENA -m lyp -q $(INPUT)" + $(H)./$(EXEC).native -M $(OUTPUT) -a n -m lyp -p $(PREAMBLE_LP) -c -q $(O) $(TEST1) > etc/log.txt -profile: $(MAIN).opt etc - @echo " HELENA -o -q $(INPUT) (30 TIMES)" - $(H)rm etc/log.txt - $(H)for T in `seq 30`; do ./$(MAIN).opt -o -q -s 3 -S 1 $(O) $(INPUT) >> etc/log.txt; done - $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile-new.txt +matita: $(OUTPUT)/matita/$(MA) + @echo " MATITA $(MA)" + $(H)cd matita && $(MATITA) $(MA) -xml-si: $(MAIN).opt etc - @echo " HELENA -o -x -s 2 $(INPUT)" - $(H)./$(MAIN).opt -o -x -s 2 -S 1 -O $(XMLDIR) $(INPUT) > etc/log.txt +matitac: $(OUTPUT)/matita/$(MA) + @echo " MATITAC $(MA)" + $(H)cd matita && $(MATITAC) $(MA) -xml-si-crg: $(MAIN).opt etc - @echo " HELENA -o -x -s 1 $(INPUT)" - $(H)./$(MAIN).opt -o -x -s 1 -S 1 -O $(XMLDIR) $(INPUT) > etc/log.txt +#profile-matita: $(EXEC).native etc +# @echo " HELENA -u $(INPUT) (1 TIMES)" +# $(H)rm -f etc/log.txt +# $(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 +# $(H)grep "at exit" etc/log.txt | sort | uniq > etc/profile-new.txt