Version 0.0.5.
[ocaml-ancient.git] / Makefile
index 24a0ce9..3619f01 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 # 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.6 2006-09-27 16:01:47 rich Exp $
 
 include Makefile.config
 
@@ -16,17 +16,47 @@ OCAMLOPTLIBS        :=
 
 OCAMLDOCFLAGS := -html -stars -sort $(OCAMLCPACKAGES)
 
-all:   ancient.cma ancient.cmxa test_ancient.opt META
+ifeq ($(TEST_WEBLOGS),1)
+# For testing with large amount of weblogs data.
+OCAMLCPACKAGES := -package calendar,pcre,extlib -I ../../freeware/weblogs
+OCAMLCLIBS     := -linkpkg weblogs.cma
+OCAMLOPTPACKAGES  := $(OCAMLCPACKAGES)
+OCAMLOPTLIBS   := -linkpkg weblogs.cmxa
+endif
+
+TARGETS                := mmalloc ancient.cma ancient.cmxa META \
+                  test_ancient.opt test_ancient_shared.opt
+
+ifeq ($(TEST_WEBLOGS),1)
+TARGETS                += test_ancient_weblogs.opt
+endif
+
+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 $@ $^
+
+ifeq ($(TEST_WEBLOGS),1)
+test_ancient_weblogs.opt: ancient.cmxa test_ancient_weblogs.cmx
+       LIBRARY_PATH=.:$$LIBRARY_PATH \
+       ocamlfind ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) $(OCAMLOPTLIBS) -o $@ $^
+endif
+
+# Build the mmalloc library.
+
+mmalloc:
+       $(MAKE) -C mmalloc
 
 # Common rules for building OCaml objects.
 
@@ -40,14 +70,15 @@ test_ancient.opt: ancient.cmxa test_ancient.cmx
 # 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.
 
@@ -120,6 +151,6 @@ doc:
        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