-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 html test-html \
- install-html install-lddl install-dtd install-xml instal-css
+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-pts export-lyp \
+ matita matitac
+include Makefile.common
-XMLS = xml/brg-si/grundlagen/l/not.ld.xml \
- xml/brg-si/grundlagen/l/et.ld.xml \
- xml/brg-si/grundlagen/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.xml \
- xml/brg-si/grundlagen/l/e/pairis1.ld.xml \
- xml/brg-si/grundlagen/l/e/st/eq/landau/n/327/t25.ld.xml \
- xml/crg-si/grundlagen/l/not.ld.xml \
- xml/crg-si/grundlagen/l/et.ld.xml \
- xml/crg-si/grundlagen/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.xml \
- xml/crg-si/grundlagen/l/e/pairis1.ld.xml \
- xml/crg-si/grundlagen/l/e/st/eq/landau/n/327/t25.ld.xml \
- xml/brg-si/grundlagen/ccs.ldc.xml
+TIME = `which time` -p -a -o etc/log.txt
-include Makefile.common
+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
-INPUT = examples/grundlagen/grundlagen.aut
+INPUTFAST = examples/automath/grundlagen_1.aut
-SLS = helena.sl automath.sl
+OUTPUT = scripts
-test-si: $(MAIN).opt etc
- @echo " HELENA -p -o -c $(INPUT)"
- $(H)./$(MAIN).opt -p -o -c -S 3 $(O) $(INPUT) > etc/log.txt
+MA = grundlagen_2.ma
+V = grundlagen_2.v
+LP1 = grundlagen_2a_ld3.elpi
+LP2 = grundlagen_2b_ld3.elpi
+TJ2 = grundlagen_2b_ld3.mod
+TJ3 = grundlagen_2c_ld3.mod
+PTS = grundlagen_2b_pts.elpi
+LYP = grundlagen_2b_lyp.elpi
-test-si-fast: $(MAIN).opt etc
- @echo " HELENA -o -q $(INPUT)"
- $(H)./$(MAIN).opt -o -q -S 1 $(O) $(INPUT) > etc/log.txt
+PREAMBLE_MA = ../matita/matita.ma.templ
+PREAMBLE_V = $(OUTPUT)/coq/grundlagen.template
+PREAMBLE_LP = $(OUTPUT)/lp/lp.template
-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
+TEST1 = -T 1 -l -u -1 $(O) $(INPUT)
-xml-si: $(MAIN).opt etc
- @echo " HELENA -o -x -s 2 $(INPUT)"
- $(H)./$(MAIN).opt -o -x -s 2 -S 1 $(INPUT) > etc/log.txt
+TEST2 = -X -T 2 -l -1 $(O) $(INPUT)
-xml-si-crg: $(MAIN).opt etc
- @echo " HELENA -o -x -s 1 $(INPUT)"
- $(H)./$(MAIN).opt -o -x -s 1 -S 1 $(INPUT) > etc/log.txt
+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
-etc:
- @echo " MKDIR etc"
- $(H)mkdir etc
+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
-%.ld: BASEURL = --stringparam baseurl $(LDDLURL)
+test1: $(EXEC).native etc
+ @echo " HELENA -l -u -1 $(INPUT)"
+ $(H)./$(EXEC).native $(TEST1) > etc/log.txt
-%.ld:
- @echo " XSLT $@"
- $(H)mkdir -p $(LOCALLDDLDIR)/$(@D)
- $(H)$(XSLT) -o $(LOCALLDDLDIR)/$@.html $(BASEURL) xml/ld-html.xsl xml/$@.xml
+test2-opt: $(EXEC).native etc
+ @echo " HELENA -l -1 $(INPUT)"
+ $(H)./$(EXEC).native $(TEST1) $(TEST2) > etc/log.txt
-%.ldc:
- @echo " SKIP $@"
+test2-byte: $(EXEC).byte etc
+ @echo " HELENA -l -1 $(INPUT)"
+ $(H)./$(EXEC).byte $(TEST1) $(TEST2) > etc/log.txt
-etc/make-html.sh xml/index.txt index:
- @echo " GENERATE INDEXES"
- $(H)find xml -name "*.ld.xml" | sed s/.xml//g | sed s/xml/ld:/g > xml/index.txt
- $(H)sed "s/^/make --no-print-directory /" xml/index.txt | sed s.ld:/.. > etc/make-html.sh
+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
-html: etc/make-html.sh
- @echo " MAKE */*.ld"
- $(H). $<
+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
-test-html:
- @$(MAKE) --no-print-directory $(XMLS:xml/%.xml=%)
+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
-install-html: etc/make-html.sh
- @echo " INSTALL xml"
- $(H)scp -r $(LOCALLDDLDIR)/* $(LDDLDIR)
+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
-install-lddl: index
- @echo " INSTALL lddl.tar.bz2"
- $(H)tar -cjf etc/lddl.tar.bz2 -X etc/exclude.txt xml
- $(H)scp etc/lddl.tar.bz2 $(DOWNDIR)
+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
-install-dtd: xml/ld.dtd
- @echo " INSTALL $<"
- $(H)scp $< $(XMLDIR)
+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
-install-css: xml/ld-html.css
- @echo " INSTALL $<"
- $(H)scp $< $(LDDLDIR)
+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
-install-xml: etc/make-html.sh
- @echo " INSTALL xml"
- $(H)scp -r xml/index.txt xml/ld.dtd xml/brg-si/ xml/crg-si/ $(XMLDIR)
+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
-install-icons:
- @echo " INSTALL *.png *.ico"
- $(H)scp icons/*.png icons/*.ico $(DOWNDIR)
+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
-install-jed:
- @echo " INSTALL $(SLS)"
- $(H)scp $(SLS:%=$(HOME)/jed/%) $(DOWNDIR)
+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 $(O) $(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 $(O) $(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 $(O) $(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 $(O) $(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 $(O) $(TEST1) > etc/log.txt
+
+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 $(O) $(TEST1) > etc/log.txt
+
+export-pts $(OUTPUT)/lp/$(PTS): $(EXEC).native etc
+ @echo " HELENA -m PTS -c -q $(INPUT)"
+ $(H)./$(EXEC).native -M $(OUTPUT) -a n -m PTS -p $(PREAMBLE_LP) -c -q $(O) $(TEST1) > etc/log.txt
+
+export-lyp $(OUTPUT)/lp/$(LYP): $(EXEC).native etc
+ @echo " HELENA -m lyp -c -q $(INPUT)"
+ $(H)./$(EXEC).native -M $(OUTPUT) -a n -m lyp -p $(PREAMBLE_LP) -c -q $(O) $(TEST1) > etc/log.txt
+
+matita: $(OUTPUT)/matita/$(MA)
+ @echo " MATITA $(MA)"
+ $(H)cd matita && $(MATITA) $(MA)
+
+matitac: $(OUTPUT)/matita/$(MA)
+ @echo " MATITAC $(MA)"
+ $(H)cd matita && $(MATITAC) $(MA)
+
+#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