BINDIR =


BINDIR=
CAMLC = $(BINDIR)ocamlc -unsafe
CAMLOPT = $(BINDIR)ocamlopt -unsafe
CAMLDEP = $(BINDIR)ocamldep
GCC = gcc


INCLUDEDIRS = -I ../glide
DEPFLAGS = $(INCLUDEDIRS)
COMPFLAG = $(INCLUDEDIRS)
CCCOMPFLAGS = -I/usr/local/lib/ocaml/caml/ -Wall -O2
LINKFLAG = -cclib -lglide2x -cclib -lmlglide -cclib -L/usr/X11R6/lib/ \
	-cclib -L../glide/ -cclib -lX11 -cclib -lunix

OBJS = qheader.cmo io.cmo printbspfile.cmo matrix.cmo math.cmo camera.cmo \
	frustum.cmo global.cmo readbspfile.cmo clip3d.cmo clip2d.cmo \
	render.cmo collision.cmo main.cmo
SRC = qheader.ml io.ml printbspfile.ml matrix.ml math.ml camera.ml \
	frustum.ml global.ml readbspfile.ml clip3d.ml clip2d.ml \
	render.ml collision.ml main.ml
MLI = inputcontrol.mli floatio.mli matrix.mli math.mli camera.mli \
	frustum.mli global.mli readbspfile.mli clip3d.mli clip2d.mli
C = inputcontrol.c floatio.c
COBJS = inputcontrol.o floatio.o
EXECNAME = oq



all: $(OBJS) $(COBJS)
	$(CAMLC) -custom ../glide/mlglide.cma unix.cma $(LINKFLAG) \
	$(OBJS) $(COBJS) -o $(EXECNAME)

opt: $(OBJS:.cmo=.cmx) $(COBJS)
	$(CAMLOPT) ../glide/mlglide.cmxa unix.cmxa $(LINKFLAG) \
	$(OBJS:.cmo=.cmx) $(COBJS) -o $(EXECNAME).opt

glreset: glreset.cmo
	$(CAMLC) -custom ../glide/mlglide.cma $(LINKFLAG) glreset.cmo \
	-o glreset

.SUFFIXES: .ml .mli .cmo .cmi .cmx
.SUFFIXES: .c .o

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

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

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

.c.o:
	$(GCC) $(CCCOMPFLAGS) -c $<


# Clean up
clean:
	rm -f *.cmo *.cmi *.cmx *~ *.o $(EXECNAME) $(EXECNAME).opt

# Dependencies
depend: $(SRC) $(MLI)
	$(CAMLDEP) $(DEPFLAGS) *.ml{,i} > .depend

include .depend
# DO NOT DELETE
