--- /dev/null
+SRC=$(shell find . -name "*.ma" -a -type f)
+
+MATITAC=../../scripts/do_tests.sh $(DO_TESTS_OPTS) ../../matitac ../../matitaclean /dev/null
+MATITACOPT=../../scripts/do_tests.sh $(DO_TESTS_OPTS) ../../matitac.opt ../../matitaclean.opt /dev/null
+VERBOSEMATITAC=../../matitac
+VERBOSEMATITACOPT=../../matitac.opt
+
+MATITACLEAN=../../matitaclean
+MATITACLEANOPT=../../matitaclean.opt
+
+MATITADEP=../../matitadep
+MATITADEPOPT=../../matitadep.opt
+
+DEPEND_NAME=.depend
+
+H=@
+
+all: $(SRC:%.ma=%.mo)
+
+opt:
+ $(H)make MATITAC="$(MATITACOPT)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" all
+
+verbose:
+ $(H)make MATITAC="$(VERBOSEMATITAC)" MATITACLEAN="$(MATITACLEAN)" MATITADEP="$(MATITADEP)" all
+
+%.opt:
+ $(H)make MATITAC="$(MATITACOPT)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" $(@:%.opt=%)
+
+clean:
+ $(H)$(MATITACLEAN) $(SRC)
+
+cleanall:
+ $(H)rm -f $(SRC:%.ma=%.moo)
+ $(MATITACLEAN) all
+
+depend:
+ rm -f $(DEPEND_NAME)
+ make $(DEPEND_NAME)
+.PHONY: depend
+
+%.moo:
+ $(H)$(MATITAC) $<
+
+$(DEPEND_NAME): $(SRC)
+ $(H)$(MATITADEP) $(SRC) > $@ || rm -f $@
+
+include $(DEPEND_NAME)