#######################################################################
#                                                                     #
#                              OCamlP3l                               #
#                                                                     #
#                  projet Estime, INRIA-Rocquencourt                  #
#                                                                     #
#  Copyright 2003-2007 INRIA.                                         #
#  Institut National de Recherche en Informatique et en Automatique.  #
#  All rights reserved. This file is distributed only by permission.  #
#                                                                     #
#  Francois Clement <Francois.Clement@inria.fr>,                      #
#  Pierre Weis <Pierre.Weis@inria.fr>.                                #
#                                                                     #
#######################################################################

# $Id: Makefile,v 1.15 2007/01/23 15:58:18 weis Exp $

CAMLC = ocamlc
CAMLDEP = ocamldep
CAMLP3LC = ocamlp3lc

SRCS = config.ml rdec.ml gnuplot.ml my_data.ml my_options.ml my_unix.ml
OBJS = $(SRCS:.ml=.cmo) 
ALLSOURCES = $(SRCS) $(SRCS:.ml=.mli)

DRIVER = coupling
WORKER = poisson

.SUFFIXES:
.SUFFIXES: .c .mli .ml .cmi .cmo .seq .par .gra

%: %.c
	$(CC) -o $@ $< -lm

%.cmi: %.mli
	$(CAMLC) -c $<
%.cmo: %.ml
	$(CAMLC) -c $<

%.seq: %.ml $(OBJS)
	$(CAMLP3LC) -seq -o $@ unix.cma $(OBJS) $<
%.par: %.ml $(OBJS)
	$(CAMLP3LC) -par -o $@ unix.cma $(OBJS) $<
%.gra: %.ml $(OBJS)
	$(CAMLP3LC) -gra -o $@ unix.cma $(OBJS) $<

.PHONY: all seq par gra res depend clean-all clean

all: seq par gra
seq: depend $(WORKER) $(DRIVER).seq res
par: depend $(WORKER) $(DRIVER).par res
gra: depend $(WORKER) $(DRIVER).gra

res:
	mkdirhier res

clean-all: clean
	rm -f $(WORKER)
	rm -fr res/*
	rm -f config-* rdec-*.cfg
clean:
	rm -f *.cm[ioxa] *.cmxa  *.o *.a a.out *~ .*~ \#*\#
	rm -f .depend; touch .depend; ${MAKE} depend
	rm -f $(DRIVER).seq $(DRIVER).par $(DRIVER).gra

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

include .depend
