+OPEN = (
+
H = @
XOA_DIR = ../../../components/binaries/xoa
XOA = xoa.native
DEP = matitadep.native
MAC_DIR = ../../../components/binaries/mac
MAC = mac.native
+PRB_DIR = ../../../components/binaries/probe
+PRB = probe.native
+PRB_OPTS = ../../matita.conf.xml -g cic:/matita/lambdadelta/
XOA_CONF = ground_2/xoa.conf.xml
XOA_TARGETS = ground_2/xoa_notation.ma ground_2/xoa.ma
PACKAGES = ground_2 basic_2 apps_2
all:
+ ../../matitac.opt
+
+# MAS ########################################################################
+
+define MAS_TEMPLATE
+ MAS_$(1) := $$(shell find $(1) -name "*.ma")
+ MAS += $$(MAS_$(1))
+endef
+
+$(foreach PKG, $(PACKAGES), $(eval $(call MAS_TEMPLATE,$(PKG))))
# xoa ########################################################################
# dep ########################################################################
-deps: MAS = $(shell find $* -name "*.ma")
-
deps: $(DEP_DIR)/$(DEP)
@echo " MATITADEP"
$(H)grep "include \"" $(MAS) | $<
# stats ######################################################################
-stats: $(PACKAGES:%=%.stats)
-
-%.stats: MAS = $(shell find $* -name "*.ma")
-
-%.stats: CHARS = $(shell $(MAC_DIR)/$(MAC) $(MAS))
-
-%.stats:
+define STATS_TEMPLATE
+ STT_$(1) := $(1).stats
+ STTS += $$(STT_$(1))
+
+ $$(STT_$(1)): S1 = $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
+ $$(STT_$(1)): S2 := $$(shell echo $$$$(($$(S1) / 5120)))
+ $$(STT_$(1)): S4 := $$(shell ls $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): S5 := $$(shell $$(PRB_DIR)/$$(PRB) $$(PRB_OPTS)$(1)/ -sn -on)
+ $$(STT_$(1)): P1 := $$(shell grep "theorem " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): P2 := $$(shell grep "lemma " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): P3 := $$(shell grep "fact " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): P4 := $$(shell grep qed $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): C1 := $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): C2 := $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): M1 := $$(shell grep "axiom " $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): M2 := $$(shell grep "$$(OPEN)\*[^*:]*$$$$" $$(MAS_$(1)) | wc -l)
+ $$(STT_$(1)): M3 := $$(shell grep "(\*\*)" $$(MAS_$(1)) | wc -l)
+
+$$(STT_$(1)):
@printf '\x1B[1;40;37m'
- @printf '%-15s %-40s' 'Statistics for:' $*
- @printf '\x1B[0m\n'
+ @printf '%-15s %-43s' 'Statistics for:' $(1)
+ @printf '\x1B[0m\n'
@printf '\x1B[1;40;35m'
- @printf '%-8s %6i' Chars $(CHARS)
- @printf ' %-8s %3i' Pages `echo $$(($(CHARS) / 5120))`
- @printf ' %-23s' ''
+ @printf '%-8s %6i' Chars $$(S1)
+ @printf ' %-8s %3i' Pages $$(S2)
+ @printf ' %-26s' ''
@printf '\x1B[0m\n'
@printf '\x1B[1;40;36m'
- @printf '%-8s %6i' Sources `ls $(MAS) | wc -l`
- @printf ' %-38s' ''
-# @printf ' %-8s %5i' Objs `ls *.vo | wc -l`
-# @printf ' %-6s %3i' Files `ls *.v | wc -l`
+ @printf '%-8s %6i' Files $$(S4)
+ @printf ' %-8s %3i' Sources $$(word 1, $$(S5))
+ @printf ' %-7s %4i' Objects $$(word 2, $$(S5))
+ @printf ' %-11s' ''
@printf '\x1B[0m\n'
@printf '\x1B[1;40;32m'
- @printf '%-8s %6i' Theorems `grep "theorem " $(MAS) | wc -l`
- @printf ' %-8s %3i' Lemmas `grep "lemma " $(MAS) | wc -l`
- @printf ' %-5s %3i' Facts `grep "fact " $(MAS) | wc -l`
- @printf ' %-6s %4i' Proofs `grep qed $(MAS) | wc -l`
+ @printf '%-8s %6i' Theorems $$(P1)
+ @printf ' %-8s %3i' Lemmas $$(P2)
+ @printf ' %-7s %4i' Facts $$(P3)
+ @printf ' %-6s %4i' Proofs $$(P4)
@printf '\x1B[0m\n'
@printf '\x1B[1;40;33m'
- @printf '%-8s %6i' Declared `grep "inductive \|record " $(MAS) | wc -l`
- @printf ' %-8s %3i' Defined `grep "definition \|let rec " $(MAS) | wc -l`
- @printf ' %-23s' ''
-# @printf ' %-8s %5i' Local `grep "Local" *.v | wc -l`
+ @printf '%-8s %6i' Declared $$(C1)
+ @printf ' %-8s %3i' Defined $$(C2)
+ @printf ' %-26s' ''
@printf '\x1B[0m\n'
@printf '\x1B[1;40;31m'
- @printf '%-8s %6i' Axioms `grep axiom $(MAS) | wc -l`
- @printf ' %-8s %3i' Comments `grep "(\*[^*:]*$$" $(MAS) | wc -l`
- @printf ' %-5s %3i' Marks `grep "(\*\*)" $(MAS) | wc -l`
+ @printf '%-8s %6i' Axioms $$(M1)
+ @printf ' %-8s %3i' Comments $$(M2)
+ @printf ' %-7s %4i' Marks $$(M3)
@printf ' %-11s' ''
@printf '\x1B[0m\n'
+endef
+
+$(foreach PKG, $(PACKAGES), $(eval $(call STATS_TEMPLATE,$(PKG))))
+
+stats: $(STTS)
# summary ####################################################################
define SUMMARY_TEMPLATE
TBL_$(1) := $(1)/$(1)_sum.tbl
- MAS_$(1) := $$(shell find $(1) -name "*.ma")
TBLS += $$(TBL_$(1))
- $$(TBL_$(1)): V1 := $$(shell ls $$(MAS_$(1)) | wc -l)
- $$(TBL_$(1)): V2 := $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
+ $$(TBL_$(1)): S1 := $$(shell ls $$(MAS_$(1)) | wc -l)
+ $$(TBL_$(1)): S2 := $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
+ $$(TBL_$(1)): S3 := $$(shell $$(PRB_DIR)/$$(PRB) $$(PRB_OPTS)$(1)/ -i)
$$(TBL_$(1)): C1 := $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
$$(TBL_$(1)): C2 := $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
$$(TBL_$(1)): C3 := $$(shell grep "inductive \|record \|definition \|let rec " $$(MAS_$(1)) | wc -l)
@printf ' [ "objects" * ]\n' >> $$@
@printf ' ]\n' >> $$@
@printf ' class "cyan" [ "sizes"\n' >> $$@
- @printf ' [ "files" "$$(V1)" ]\n' >> $$@
- @printf ' [ "characters" "$$(V2)" ]\n' >> $$@
- @printf ' [ * ]\n' >> $$@
+ @printf ' [ "files" "$$(S1)" ]\n' >> $$@
+ @printf ' [ "characters" "$$(S2)" ]\n' >> $$@
+ @printf ' [ "nodes" "$$(S3)" ]\n' >> $$@
@printf ' ]\n' >> $$@
@printf ' class "green" [ "propositions"\n' >> $$@
@printf ' [ "theorems" "$$(P1)" ]\n' >> $$@