diff --git a/Makefile b/Makefile
index cc63a96e37c95c6d17660ffca4c6cf00026c42f3..38eefec0e91d155acd37a67ac01ac643af43af71 100644
--- a/Makefile
+++ b/Makefile
@@ -1243,12 +1243,15 @@ bin/toplevel.opt$(EXE): $(ALL_BATCH_CMX) $(GEN_OPT_LIBS) \
 LIB_KERNEL_CMO= $(filter-out src/kernel_internals/runtime/gui_init.cmo, $(CMO))
 LIB_KERNEL_CMX= $(filter-out src/kernel_internals/runtime/gui_init.cmx, $(CMX))
 
-lib/fc/frama-c.cma: $(LIB_KERNEL_CMO) $(GEN_OPT_LIBS) $(LIB_KERNEL_CMX) lib/fc/META.frama-c
-	$(PRINT_LINKING) $@ and lib/fc/frama-c.cmxa
+lib/fc/frama-c.cma: $(LIB_KERNEL_CMO) $(GEN_BYTE_LIBS) lib/fc/META.frama-c
+	$(PRINT_LINKING) $@
 	$(MKDIR) $(FRAMAC_LIB)
-	$(OCAMLMKLIB) -o lib/fc/frama-c $(OPT_LIBS) $(LIB_KERNEL_CMO) $(LIB_KERNEL_CMX)
+	$(OCAMLMKLIB) -o lib/fc/frama-c $(BYTE_LIBS) $(LIB_KERNEL_CMO)
 
-lib/fc/frama-c.cmxa: lib/fc/frama-c.cma
+lib/fc/frama-c.cmxa: lib/fc/frama-c.cma $(GEN_OPT_LIBS) $(LIB_KERNEL_CMX)
+	$(MKDIR) $(FRAMAC_LIB)
+	$(PRINT_LINKING) $@
+	$(OCAMLMKLIB) -o lib/fc/frama-c $(OPT_LIBS) $(LIB_KERNEL_CMX)
 
 ####################
 # (Ocaml) Toplevel #
@@ -1891,11 +1894,15 @@ clean-install:
 	$(PRINT_RM) "Installation directory"
 	$(RM) -r $(FRAMAC_LIBDIR)
 
-install-lib: clean-install
+install-lib-byte: clean-install
 	$(PRINT_INSTALL) kernel API
 	$(MKDIR) $(FRAMAC_LIBDIR)
-	$(CP) $(LIB_BYTE_TO_INSTALL) $(LIB_OPT_TO_INSTALL) $(FRAMAC_LIBDIR)
-	$(CP) $(addprefix lib/fc/,dllframa-c.so libframa-c.a frama-c.cma frama-c.a frama-c.cmxa META.frama-c)  $(FRAMAC_LIBDIR)
+	$(CP) $(LIB_BYTE_TO_INSTALL) $(FRAMAC_LIBDIR)
+	$(CP) $(addprefix lib/fc/,dllframa-c.so libframa-c.a frama-c.cma META.frama-c) $(FRAMAC_LIBDIR)
+
+install-lib-opt: install-lib-byte
+	$(CP) $(LIB_OPT_TO_INSTALL) $(FRAMAC_LIBDIR)
+	$(CP) $(addprefix lib/fc/,frama-c.a frama-c.cmxa) $(FRAMAC_LIBDIR)
 
 install-doc-code:
 	$(PRINT_INSTALL) API documentation
@@ -1907,7 +1914,7 @@ install-doc-code:
 		| (cd $(FRAMAC_DATADIR)/doc ; tar xf -))
 
 .PHONY: install
-install:: install-lib
+install:: install-lib-$(OCAMLBEST)
 	$(PRINT_MAKING) destination directories
 	$(MKDIR) $(BINDIR)
 	$(MKDIR) $(MANDIR)/man1