# $Id: Makefile.facile,v 1.2 2003/08/06 14:01:31 brisset Exp $
# Generic Makefile for single files using FaCiLe. Allow to produce
# file.out (ocamlc) and file.opt (ocamlopt) from file.ml while linking
# with the FaCiLe library
#INCLUDES= -I ../src
INCLUDES=
OCAMLC= ocamlc -g $(INCLUDES)
OCAMLMLI= ocamlc $(INCLUDES)
OCAMLOPT= ocamlopt $(INCLUDES)
OCAMLDEP= ocamldep $(INCLUDES)
OCAMLFIND= ocamlfind
PKGFLAGS= -package facile
.SUFFIXES:
.SUFFIXES: .ml .mli .mly .mll .cmi .cmo .cmx .out .opt .p.cmx .popt
.ml.cmo :
$(OCAMLFIND) $(OCAMLC) $(PKGFLAGS) -c $<
.mli.cmi :
$(OCAMLFIND) $(OCAMLMLI) $(PKGFLAGS) -c $<
.ml.cmx :
$(OCAMLFIND) $(OCAMLOPT) $(PKGFLAGS) -c $<
# To produce profiled objects
.ml.p.cmx :
$(OCAMLFIND) $(OCAMLOPT) $(PKGFLAGS) -p -c $<
mv $*.cmx $@
mv $*.o $*.p.o
.cmo.out :
$(OCAMLFIND) $(OCAMLC) -o $@ $(PKGFLAGS) -linkpkg $<
# To produce profiled binaries
.p.cmx.popt :
$(OCAMLFIND) $(OCAMLOPT) -p -o $@ $(PKGFLAGS) -linkpkg $<
.cmx.opt :
$(OCAMLFIND) $(OCAMLOPT) -o $@ $(PKGFLAGS) -linkpkg $<
.mly.ml :
ocamlyacc $<
.mll.ml :
ocamllex $<
clean:
\rm -f *.cmo *.cmi *.cmx *.o *~ *.opt *.out .depend *.popt
.depend:
$(OCAMLDEP) *.mli *.ml > $@
include .depend