--- /dev/null
+SRC=\
+ apply.ma fguidi.ma letrec.ma replace.ma test3.ma auto.ma first.ma\
+ match.ma rewrite.ma test4.ma baseuri.ma fix_betareduction.ma\
+ match_inference.ma second.ma third.ma coercions.ma fold.ma\
+ mysql_escaping.ma simpl.ma comments.ma inversion.ma record.ma test2.ma
+
+MATITAC=../scripts/do_tests.sh ../matitac ../matitaclean /dev/null
+MATITACOPT=../scripts/do_tests.sh ../matitac.opt ../matitaclean.opt /dev/null
+VERBOSEMATITAC=../matitac
+VERBOSEMATITACOPT=../matitac.opt
+
+MATITACLEAN=../matitaclean
+MATITACLEANOPT=../matitaclean.opt
+
+MATITADEP=../matitadep
+MATITADEPOPT=../matitadep.opt
+
+DEPEND_NAME=.depend
+LINKS=.matita matita.lang matita.conf.xml
+
+all: $(LINKS) $(SRC:%.ma=%.moo)
+
+opt:
+ @make MATITAC="$(MATITACOPT)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" all
+
+verbose.opt:
+ @make MATITAC="$(VERBOSEMATITAC)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" all
+
+verboseopt:
+ @make MATITAC="$(VERBOSEMATITACOPT)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" all
+
+%.opt:
+ @make MATITAC="$(MATITACOPT)" MATITACLEAN="$(MATITACLEANOPT)" MATITADEP="$(MATITADEPOPT)" $(@:%.opt=%)
+
+clean: $(LINKS)
+ rm -f $(SRC:%.ma=%.moo)
+ $(MATITACLEAN) all
+
+depend: $(DEPEND_NAME)
+
+%.moo:%.ma $(DEPEND_NAME) $(LINKS)
+ @[ ! -e $@ ] || $(MATITACLEAN) $<
+ @$(MATITAC) $< || $(MATITACLEAN) $<
+
+$(DEPEND_NAME): $(SRC) $(LINKS)
+ $(MATITADEP) $(SRC) > $@
+
+# Let's prepare the environment
+.matita:
+ ln -s ../.matita .
+
+matita.lang:
+ ln -s ../matita.lang .
+
+matita.conf.xml:
+ ln -s ../matita.conf.xml .
+#done
+
+include $(DEPEND_NAME)