BINDIR=
CAMLC=$(BINDIR)ocamlc
CAMLOPT=$(BINDIR)ocamlopt
CAMLDEP=$(BINDIR)ocamldep
CAMLLEX=$(BINDIR)ocamllex
CAMLYACC=$(BINDIR)ocamlyacc
OCAMLLIB=/usr/local/lib/ocaml/
LABLGTKDIR=$(OCAMLLIB)/lablgtk

# $(shell gtk-config --cflags)
INCLUDEGTK = -ccopt "-I /usr/include/gtk-1.2 -I /usr/include/glib-1.2 -I /usr/lib/glib/include -I /usr/X11R6/include" -I $(OCAMLLIB)/lablgtk
# $(shell gtk-config --libs)
LINKGTK = -cclib "-L /usr/lib -L /usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm" -cclib "-L $(OCAMLLIB)/lablgtk/" unix.cma str.cma nums.cma $(OCAMLLIB)/lablgtk/lablgtk.cma $(OCAMLLIB)/lablgtk/gtkInit.cmo
LINKGTK_OPT = -cclib "-L /usr/lib -L /usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm" -cclib "-L $(OCAMLLIB)/lablgtk/" unix.cmxa str.cmxa nums.cmxa $(OCAMLLIB)/lablgtk/lablgtk.cmxa $(OCAMLLIB)/lablgtk/gtkInit.cmx

COMPFLAGS = -I ../common $(INCLUDEGTK)
COMPFLAGS_OPT = -I ../common $(INCLUDEGTK)
LINKFLAGS = $(LINKGTK)
LINKFLAGS_OPT = $(LINKGTK_OPT)

BLABLASRCS = ../common/common.ml ../common/exist.ml \
	blabla_glade_interface.ml global.ml blabla_glade_callbacks.ml \
	game.ml ihm_misc.ml blabla_my_callbacks.ml main.ml
BLABLAOBJS = $(BLABLASRCS:.ml=.cmo)
BLABLAOBJS_OPT = $(BLABLASRCS:.ml=.cmx)
BLABLA = ../bin/blabla
BLABLA_OPT = ../bin/blabla_opt


all: $(BLABLA) $(BLABLA_OPT)

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

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

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

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

.mll.ml:
	$(CAMLLEX) $<

.mly.ml:
	$(CAMLYACC) $<


$(BLABLA): $(BLABLAOBJS)
	$(CAMLC) $(LINKFLAGS) $(BLABLAOBJS) -o $(BLABLA)

$(BLABLA_OPT): $(BLABLAOBJS_OPT)
	$(CAMLOPT) $(LINKFLAGS_OPT) $(BLABLAOBJS_OPT) -o $(BLABLA_OPT)


blabla_glade_interface.ml blabla_glade_callbacks.ml: blabla.glade
	mlglade blabla.glade


# Clean up
clean:
	rm -f *~ *.cmo *.cmx *.cmi *.o *.a *.cma *.cmxa
	rm -f blabla_glade_interface.ml blabla_glade_callbacks.ml
	rm -f $(BLABLA) $(BLABLA_OPT)

# Dependencies
depend: $(BLABLASRCS)
	$(CAMLDEP) $(BLABLASRCS) > .depend

include .depend
