# This Makefile must be included by another one defining:
# $PACKAGE
-# $REQUIRES
# $PREDICATES
# $INTERFACE_FILES
# $IMPLEMENTATION_FILES
OCAMLDEBUGOPTIONS = -g
OCAMLARCHIVEOPTIONS =
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)
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