# This Makefile must be included by another one defining:
# $PACKAGE
-# $REQUIRES
# $PREDICATES
# $INTERFACE_FILES
# $IMPLEMENTATION_FILES
# and put in a directory where there is a .depend file.
OCAMLFIND_DEST_DIR = @OCAMLFIND_DEST_DIR@
+OCAMLPATH = @OCAMLFIND_META_DIR@
PREPROCOPTIONS = -pp camlp4o
SYNTAXOPTIONS = -syntax camlp4o
OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -thread
OCAMLDEBUGOPTIONS = -g
OCAMLARCHIVEOPTIONS =
-OCAMLFIND = @OCAMLFIND@
+OCAMLFIND = OCAMLPATH=$(OCAMLPATH):$$OCAMLPATH @OCAMLFIND@
+REQUIRES := $(shell $(OCAMLFIND) -query -format '%(requires)' helm-$(PACKAGE))
OCAMLC = $(OCAMLFIND) ocamlc $(OCAMLDEBUGOPTIONS) $(OCAMLOPTIONS) $(PREPROCOPTIONS)
OCAMLOPT = $(OCAMLFIND) opt $(OCAMLOPTIONS) $(PREPROCOPTIONS)
OCAMLDEP = $(OCAMLFIND) ocamldep -package "camlp4,$(REQUIRES)" $(SYNTAXOPTIONS)
OCAMLC_P4 = $(OCAMLFIND) ocamlc $(OCAMLDEBUGOPTIONS) $(OCAMLOPTIONS) $(SYNTAXOPTIONS)
OCAMLOPT_P4 = $(OCAMLFIND) opt $(OCAMLOPTIONS) $(SYNTAXOPTIONS)
-LIBRARIES = $(shell ocamlfind query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
-LIBRARIES_OPT = $(shell ocamlfind query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
ARCHIVE = $(PACKAGE).cma
DEPEND_FILES = $(INTERFACE_FILES) $(IMPLEMENTATION_FILES)
$(ARCHIVE): $(IMPLEMENTATION_FILES:%.ml=%.cmo) $(LIBRARIES)
+ if [ $(PACKAGE) != dummy ]; then \
$(OCAMLC) $(OCAMLARCHIVEOPTIONS) -a -o $@ \
- $(IMPLEMENTATION_FILES:%.ml=%.cmo)
+ $(IMPLEMENTATION_FILES:%.ml=%.cmo); fi
$(ARCHIVE_OPT): $(IMPLEMENTATION_FILES:%.ml=%.cmx) $(LIBRARIES_OPT)
+ if [ $(PACKAGE) != dummy ]; then \
$(OCAMLOPT) $(OCAMLARCHIVEOPTIONS) -a -o $@ \
- $(IMPLEMENTATION_FILES:%.ml=%.cmx)
+ $(IMPLEMENTATION_FILES:%.ml=%.cmx); fi
prereq: $(PREREQ)
all: prereq $(IMPLEMENTATION_FILES:%.ml=%.cmo) $(ARCHIVE)
$(IMPLEMENTATION_FILES:%.ml=%.cmx): $(LIBRARIES_OPT)
clean:
- rm -f *.cm[ioax] *.cmxa *.o *.a $(EXTRA_OBJECTS_TO_CLEAN)
+ rm -f *.cm[ioax] *.cmxa *.o *.a *.annot $(EXTRA_OBJECTS_TO_CLEAN)
if [ -f test ]; then rm -f test; else true; fi
if [ -f test.opt ]; then rm -f test.opt; else true; fi