-GOALS = all opt clean clean.opt
+H=@
-DEVELS = Base-1 LambdaDelta-1 Base-2 Unified-Sub
+MATITAOPTIONS=$(MATITAUSEROPTIONS) -onepass
-$(GOALS):
- @$(foreach DEVEL, $(DEVELS), $(MAKE) -C $(DEVEL) $@;)
+DIR=$(shell basename $$PWD)
-.PHONY: (GOALS)
+MMAS = $(shell find Base-2 -name "*.mma")
+MAS = $(MMAS:%.mma=%.ma)
+XMAS = Base-2/theory.ma LambdaDelta-2/theory.ma
-.SUFFIXES:
+$(DIR) all: depends
+ $(H)$(MAKE) H=$(H) --no-print-directory build
+
+$(DIR).opt opt all.opt: depends
+ $(H)$(MAKE) H=$(H) --no-print-directory build.opt
+
+build: $(MAS)
+ $(H)$echo Base-2/theory.ma `../../matitadep.opt -stdout Base-2/theory.ma` >> depends
+ $(H)../../matitac $(MATITAOPTIONS) 2> /dev/null
+ $(H)rm depends
+
+build.opt: $(MAS)
+ $(H)echo Base-2/theory.ma `../../matitadep.opt -stdout Base-2/theory.ma` >> depends
+ $(H)../../matitac.opt $(MATITAOPTIONS) 2> /dev/null
+ $(H)rm depends
+
+clean:
+ $(H)../../matitaclean $(MATITAOPTIONS)
+ $(H)rm -f $(MAS) depends
+
+clean.opt:
+ $(H)../../matitaclean.opt $(MATITAOPTIONS)
+ $(H)rm -f $(MAS) depends
+
+clean.ma:
+ $(H)../../matitaclean.opt $(MATITAOPTIONS) $(MAS)
+ $(H)rm -f $(MAS) depends
+
+depend:
+ @echo matitadep
+ $(H)../../matitadep $(foreach FILE,$(XMAS),-exclude $(FILE))
+ $(H)cat Base-2/depends >> depends
+depend.opt:
+ @echo matitadep.opt
+ $(H)../../matitadep.opt $(foreach FILE,$(XMAS),-exclude $(FILE))
+ $(H)cat Base-2/depends >> depends
+
+depends: depend.opt
+
+%.ma: %.mma
+ $(H)../../matitac.opt $(MATITAOPTIONS) $(word 3,$(shell grep -h $< */depends)) `../../matitadep.opt -stdout $<` 2> /dev/null
+ $(H)../../matitac.opt $(MATITAOPTIONS) -dump $@ $< 2> /dev/null
+ $(H)echo $@ `../../matitadep.opt -stdout $@` >> depends
+
+include Base-2/.depend