# Mark objects as 'ancient' so they are taken out of the OCaml heap.
-# $Id: Makefile,v 1.2 2006-09-27 12:09:02 rich Exp $
+# $Id: Makefile,v 1.7 2006-10-06 12:26:31 rich Exp $
include Makefile.config
OCAMLDOCFLAGS := -html -stars -sort $(OCAMLCPACKAGES)
-all: ancient.cma ancient.cmxa test_ancient.opt META
+TARGETS := mmalloc ancient.cma ancient.cmxa META \
+ test_ancient.opt test_ancient_shared.opt
+
+all: $(TARGETS)
ancient.cma: ancient.cmo ancient_c.o
- ocamlmklib -o ancient $^
+ ocamlmklib -o ancient -Lmmalloc -lmmalloc $^
ancient.cmxa: ancient.cmx ancient_c.o
- ocamlmklib -o ancient $^
+ ocamlmklib -o ancient -Lmmalloc -lmmalloc $^
test_ancient.opt: ancient.cmxa test_ancient.cmx
LIBRARY_PATH=.:$$LIBRARY_PATH \
- ocamlfind ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) -o $@ $^
+ ocamlfind ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $(OCAMLOPTLIBS) -o $@ $^
+
+test_ancient_shared.opt: ancient.cmxa test_ancient_shared.cmx
+ LIBRARY_PATH=.:$$LIBRARY_PATH \
+ ocamlfind ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $(OCAMLOPTLIBS) -o $@ $^
+
+# Build the mmalloc library.
+
+mmalloc:
+ $(MAKE) -C mmalloc
# Common rules for building OCaml objects.
# Findlib META file.
META: META.in Makefile.config
- $(SED) -e 's/@PACKAGE@/$(PACKAGE)/' \
- -e 's/@VERSION@/$(VERSION)/' \
- < $< > $@
+ sed -e 's/@PACKAGE@/$(PACKAGE)/' \
+ -e 's/@VERSION@/$(VERSION)/' \
+ < $< > $@
# Clean.
clean:
rm -f *.cmi *.cmo *.cmx *.cma *.cmxa *.o *.a *.so *~ core META *.opt
+ $(MAKE) -C mmalloc clean
# Dependencies.
install:
rm -rf $(DESTDIR)$(OCAMLLIBDIR)/ancient
- install -c -m 0755 -d $(DESTDIR)$(OCAMLLIBDIR)/weblogs
+ install -c -m 0755 -d $(DESTDIR)$(OCAMLLIBDIR)/ancient
install -c -m 0644 *.cmi *.mli *.cma *.cmxa *.a META \
$(DESTDIR)$(OCAMLLIBDIR)/ancient
mkdir html
-ocamlfind ocamldoc $(OCAMLDOCFLAGS) -d html ancient.ml{i,}
-.PHONY: depend dist check-manifest dpkg doc
+.PHONY: depend dist check-manifest dpkg doc mmalloc
.SUFFIXES: .cmo .cmi .cmx .ml .mli