-matita: $(CMOS) matita.ml
- $(OCAMLC) -linkpkg -o $@ $^
-matita.opt: $(CMXS) matita.ml
- $(OCAMLOPT) -linkpkg -o $@ $^
+matita: $(LIB_DEPS) $(CMOS) matita.ml
+ $(OCAMLC) $(PKGS) -linkpkg -o $@ $(CMOS) matita.ml
+matita.opt: $(LIBX_DEPS) $(CMXS) matita.ml
+ $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(CMXS) matita.ml
+
+matitac: $(CLIB_DEPS) $(CCMOS) matitac.ml
+ $(OCAMLC) $(CPKGS) -linkpkg -o $@ $(CCMOS) matitac.ml
+matitac.opt: $(CLIBX_DEPS) $(CCMXS) matitac.ml
+ $(OCAMLOPT) $(CPKGS) -linkpkg -o $@ $(CCMXS) matitac.ml
+
+matitatop: matitatop.ml $(CLIB_DEPS) $(CCMOS)
+ $(OCAMLC) $(CPKGS) -linkpkg -o $@ toplevellib.cma $(CCMOS) $<
+
+matitadep: matitadep.ml $(DEPLIB_DEPS) $(CCMOS)
+ $(OCAMLC) $(DEPPKGS) -linkpkg -o $@ $(CCMOS) $<
+matitadep.opt: matitadep.ml $(DEPLIB_DEPS) $(CCMXS)
+ $(OCAMLOPT) $(DEPPKGS) -linkpkg -o $@ $(CCMXS) $<
+
+matitaclean: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMOS)
+ $(OCAMLC) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMOS) $<
+matitaclean.opt: matitaclean.ml $(CLEANLIB_DEPS) $(CLEANCMXS)
+ $(OCAMLOPT) $(CLEANPKGS) -linkpkg -o $@ $(CLEANCMXS) $<
+
+matitamake: matitamake.ml $(MAKECMOS)
+ $(OCAMLC) $(PKGS) -linkpkg -o $@ $(MAKECMOS) $<
+matitamake.opt: matitamake.ml $(MAKECMXS)
+ $(OCAMLOPT) $(PKGS) -linkpkg -o $@ $(MAKECMXS) $<
+
+cicbrowser: matita
+ @test -f $@ || ln -s $< $@
+cicbrowser.opt: matita.opt
+ @test -f $@ || ln -s $< $@