# Inclusion of Makefile.conf may fail when cleaning up: -include $(TOP_DIR)/Makefile.conf # Makefile.conf: written by "configure". # How to invoke compilers and tools: # (May be moved to Makefile.conf if necessary) OCAMLC = $(USE_OCAMLFIND) ocamlc -g $(OCAMLC_OPTIONS) $(INCLUDES) OCAMLOPT = $(USE_OCAMLFIND) ocamlopt $(OCAMLOPT_OPTIONS) $(INCLUDES) OCAMLDEP = ocamldep $(OCAMLDEP_OPTIONS) OCAMLFIND = ocamlfind OCAMLYACC = ocamlyacc OCAMLLEX = ocamllex CAMLP4 = camlp4 TOOLS_DIR = $(TOP_DIR)/tools COLLECT_FILES = $(TOOLS_DIR)/collect_files # Standard definitions and rules XOBJECTS = $(OBJECTS:.cmo=.cmx) ARCHIVE = $(PKGNAME).cma XARCHIVE = $(PKGNAME).cmxa $(ARCHIVE): $(OBJECTS) $(OCAMLC) -a -o $(ARCHIVE) $(OBJECTS) $(XARCHIVE): $(XOBJECTS) $(OCAMLOPT) -a -o $(XARCHIVE) $(XOBJECTS) # Files to remove everywhere by "make clean": CLEAN_LIST = *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa packlist-* # Generic build rules: .SUFFIXES: .cmo .cmi .cmx .ml .mli .mll .mly .ml.cmx: $(OCAMLOPT) -c $< .ml.cmo: $(OCAMLC) -c $< .mli.cmi: $(OCAMLC) -c $< .mll.ml: $(OCAMLLEX) $< .mly.ml: $(OCAMLYACC) $< # Install rules: .PHONY: install install: install-$(INSTMETHOD) $(INSTOTHER) .PHONY: uninstall uninstall: uninstall-$(INSTMETHOD) $(UNINSTOTHER) .PHONY: install-findlib install-findlib: files=`$(COLLECT_FILES) *.mli *.cmi *.cma *.cmxa *.a META $(INSTALL_EXTRA)` && \ $(OCAMLFIND) install $(PKGNAME) $$files .PHONY: uninstall-findlib uninstall-findlib: $(OCAMLFIND) remove $(PKGNAME) .PHONY: install-conventional install-conventional: test -n $(LIBDIR) mkdir -p $(LIBDIR) files=`$(COLLECT_FILES) *.mli *.cmi *.cma *.cmxa *.a META $(INSTALL_EXTRA)` && \ echo $$files packlist-$(PKGNAME) >packlist-$(PKGNAME) && \ cp $$files packlist-$(PKGNAME) $(LIBDIR) .PHONY: uninstall-conventional uninstall-conventional: test -d $(LIBDIR) files=`cat $(LIBDIR)/packlist-$(PKGNAME)` && \ for f in $$files; do rm -f $(LIBDIR)/$$f; done #---------------------------------------------------------------------- # general rules: .PHONY: clean clean:: rm -f $(CLEAN_LIST) .PHONY: distclean distclean:: rm -f $(CLEAN_LIST) META rm -f *~ depend