-$(ARCHIVE).cma $(DLL): $(OBJECTS) $(OBJECTS_C)
- $(OCAMLMKLIB) -o $(ARCHIVE) -L$(OCAML_STUB_DIR) $^ $(SHARED_LIBS)
-$(ARCHIVE).cmxa $(ARCHIVE).a: $(OBJECTS_OPT)
- $(OCAMLMKLIB) -o $(ARCHIVE) -L$(OCAML_STUB_DIR) $^ $(OBJECTS_C) $(SHARED_LIBS)
-
-$(TESTDIR)/test: $(OBJECTS_C) $(ARCHIVE).cma $(TESTDIR)/test.ml
- mkdir -p $(TMPPKGDIR)
- cp $(OBJECTS_C) $(DLL) $(ARCHIVE).cma $(INST) $(TMPPKGDIR)
- cd $(TESTDIR) ; export OCAMLPATH=../$(TMPDIR):$$OCAMLPATH ; make
- rm -r $(TMPDIR)
-
-$(TESTDIR)/test.opt: $(OBJECTS_C) $(ARCHIVE).a $(ARCHIVE).cmxa $(TESTDIR)/test.ml
- mkdir -p $(TMPPKGDIR)
- cp $(OBJECTS_C) $(ARCHIVE).a $(ARCHIVE).cmxa $(INST) $(TMPPKGDIR)
- cd $(TESTDIR) ; export OCAMLPATH=../$(TMPDIR):$$OCAMLPATH ; make opt
- rm -r $(TMPDIR)
-
-install:
- test ! -f $(ARCHIVE).cmxa || extra="$(ARCHIVE).a $(ARCHIVE).cmxa" ; \
- if [ "$(PREFIX)" = "" ]; then \
- $(OCAMLFIND) install \
- $(PACKAGE) $(OBJECTS_C) $(ARCHIVE).cma $(DLL) $(INST) $$extra; \
- ln -fs $(DLL) $(shell $(OCAMLFIND) printconf destdir)/stublibs/lib$(ARCHIVE).so; \
- else \
- $(OCAMLFIND) install -destdir $(PREFIX) \
- $(PACKAGE) $(OBJECTS_C) $(ARCHIVE).cma $(DLL) $(INST) $$extra; \
- ln -fs $(DLL) $(PREFIX)/stublibs/lib$(ARCHIVE).so; \
- fi
+$(ARCHIVE).cma: $(ML_OBJECTS)
+ $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+$(ARCHIVE).cmxa: $(ML_OBJECTS_OPT)
+ $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+lib$(ARCHIVE).a $(DLL): $(C_OBJECTS)
+ $(OCAMLMKLIB) -o $(ARCHIVE) $^ $(SHARED_LIBS)
+
+ifeq ($(DESTDIR),"")
+INSTALLER = $(OCAMLFIND) install -ldconf /dev/null
+UNINSTALLER = $(OCAMLFIND) remove -ldconf /dev/null
+else
+INSTALLER = $(OCAMLFIND) install -destdir $(DESTDIR) -ldconf /dev/null
+UNINSTALLER = $(OCAMLFIND) remove -destdir $(DESTDIR) -ldconf /dev/null
+install: world installmkdir
+endif
+
+ifeq ($(NATIVE),yes)
+install: installworld
+else
+install: installbyte
+endif
+
+installbyte:
+ $(INSTALLER) $(PACKAGE) $(BYTE_INST) $(EXTRA_INST)
+installworld:
+ $(INSTALLER) $(PACKAGE) $(OPT_INST) $(EXTRA_INST)
+
+installmkdir:
+ mkdir -p $(DESTDIR)