Plasma GitLab Archive
Projects Blog Knowledge

# 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

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml