#*********************************************************************#
#                                                                     #
#                           Objective Caml                            #
#                                                                     #
#            Pierre Weis, projet Cristal, INRIA Rocquencourt          #
#                                                                     #
#  Copyright 2000 Institut National de Recherche en Informatique et   #
#  en Automatique.  All rights reserved.  This file is distributed    #
#  under the terms of the GNU Library General Public License.         #
#                                                                     #
#*********************************************************************#

SOURCES = essai1.ml essai2.ml euro.ml graphps_logo.ml
EXECS = essai1 essai2 euro graphps_logo
EXECS.OPT = $(SOURCES:.ml=.opt)

CAMLC = ocamlc -I ..
CAMLOPT = ocamlopt -I ..
CAMLDEP = ocamldep
CAMLLEX = ocamllex
CAMLYACC = ocamlyacc

LIBS=

CUSTOM=-custom

WITHGRAPHICSPS =graphics.cmo

all: depend $(EXECS)

opt : $(EXECS.OPT)

SOURCES1 = $(SOURCES:.mly=.ml)
SOURCES2 = $(SOURCES1:.mll=.ml)
OBJS = $(SOURCES2:.ml=.cmo)
OPTOBJS = $(SOURCES2:.ml=.cmx)

$(EXECS): $(OBJS)
	for i in $(EXECS); do \
	$(CAMLC) $(CUSTOM) -o $$i $(WITHGRAPHICSPS) $$i.cmo; \
	./$$i > $$i.eps; \
	echo "To visualize the result: ghostview, gs, or gv $$i.eps"; \
	done

$(EXECS.OPT): $(OPTOBJS)
	for i in  $(EXECS); do \
	$(CAMLOPT) -o $$i.opt $(WITHGRAPHICSPS:.cmo=.cmx) $$i.cmx; \
	./$$i.opt > $$i.eps; \
	echo "To visualize the result: ghostview, gs, or gv $$i.eps"; \
	done

.SUFFIXES:
.SUFFIXES: .ml .mli .cmo .cmi .cmx .mll .mly

.ml.cmo:
	$(CAMLC) -c $<

.mli.cmi:
	$(CAMLC) -c $<

.ml.cmx:
	$(CAMLOPT) -c $<

.mll.cmo:
	$(CAMLLEX) $<
	$(CAMLC) -c $*.ml

.mll.cmx:
	$(CAMLLEX) $<
	$(CAMLOPT) -c $*.ml

.mly.cmo:
	$(CAMLYACC) $<
	$(CAMLC) -c $*.mli
	$(CAMLC) -c $*.ml

.mly.cmx:
	$(CAMLYACC) $<
	$(CAMLOPT) -c $*.mli
	$(CAMLOPT) -c $*.ml

.mly.cmi:
	$(CAMLYACC) $<
	$(CAMLC) -c $*.mli

.mll.ml:
	$(CAMLLEX) $<

.mly.ml:
	$(CAMLYACC) $<

clean:
	rm -f *.cm[aiox]* *~ .*~ #*#
	rm -f *.o
	rm -f *.eps *.ps
	rm -f a.out $(EXECS)
	rm -f $(EXECS.OPT)

.depend: $(SOURCES2)
	$(CAMLDEP) *.mli *.ml > .depend

depend: $(SOURCES2)
	$(CAMLDEP) *.mli *.ml > .depend

include .depend
