-$(ARCHIVE).cma $(DLL): $(CMO_S)
- $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMO_S) $(O_S) $(SHARED_LIBS)
-$(ARCHIVE).cmxa $(ARCHIVE).a: $(CMX_S)
- $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMX_S) $(O_S) $(SHARED_LIBS)
+$(ARCHIVE).cma: $(CMO_S)
+ $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMO_S) $(SHARED_LIBS)
+
+$(ARCHIVE).cmxa: $(CMX_S)
+ $(OCAMLMKLIB) -o $(ARCHIVE) -L@OCAMLSTUBDIR@ $(CMX_S) $(SHARED_LIBS)
+
+$(DLL) $(ARCHIVE).a: $(LO_S)
+ # use .lo for ocamlmklib
+ for f in $(LO_S); do \
+ cp $$f $$f.o; \
+ done
+ $(OCAMLMKLIB) -o $(ARCHIVE) $(GDOME_LIBS) $(LO_S:%=%.o)
+ for f in $(LO_S:%=%.o); do \
+ rm $$f; \
+ done