OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLC_FLAGS) $(OCAML_DEBUG_FLAGS)
 OCAMLOPT = $(OCAMLFIND) opt $(OCAMLC_FLAGS)
 OCAMLDEP = $(OCAMLFIND) ocamldep $(OCAML_FLAGS)
+INSTALL_PROGRAMS= matita matitac
+INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser 
+INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean
 
 MATITA_FLAGS = -noprofile
 NODB=false
 .PHONY: opt upx
 
 ifeq ($(HAVE_OCAMLOPT),yes)
-world: depend.opt opt
+world: depend.opt opt links
 else
 world: depend all
 endif
 
+#links %.opt -> %
+links:
+       $(H)for X in $(INSTALL_PROGRAMS_LINKS_MATITAC) \
+                       $(INSTALL_PROGRAMS_LINKS_MATITA); do\
+               ln -sf $$X.opt $$X;\
+       done
+
 matita: matita.ml $(LIB_DEPS) $(CMOS)
        $(H)echo "  OCAMLC $<"
        $(H)$(OCAMLC) $(PKGS) -linkpkg -o $@ $(CMOS) matita.ml
        LICENSE                         \
        $(NULL)
 
-INSTALL_PROGRAMS= matita matitac
-INSTALL_PROGRAMS_LINKS_MATITA= cicbrowser 
-INSTALL_PROGRAMS_LINKS_MATITAC= matitadep matitamake matitaclean
 ifeq ($(HAVE_OCAMLOPT),yes)
 INSTALL_STUFF_BIN = $(INSTALL_PROGRAMS:%=%.opt) 
 else