GIFLIBDIR= gif

include Makefile.camltk
MLCOMPFLAGS = -I gif/ $(TKCOMPFLAGS)
CCOMPFLAGS = -O3 -I/usr/local/lib/ocaml/caml/ -D BCOPY_BLIT
GCC = gcc
CAMLC = ocamlopt
CAMLDEP = ocamldep -I gif/




RENDER = listextra.cmx floatextra.cmx angleextra.cmx bsptreebase.cmx \
	vertexsbase.cmx \
	linedefsbase.cmx sectorsbase.cmx binloadlevel.cmx renderextern.cmx \
	renderinit.cmx exitrender.cmx location.cmx renderview.cmx \
	bclinedefs.cmx bcbsptree.cmx blockmap.cmx blockmapbase.cmx \
	collision.cmx rendermain.cmx

COBJS = svgalib.o

BSPCOMP = boolextra.cmx floatextra.cmx listextra.cmx location.cmx \
	vertexsbase.cmx linedefsbase.cmx sectorsbase.cmx bsptreebase.cmx \
	ascloaddescr.cmx binsavelevel.cmx angleextra.cmx bclinedefs.cmx \
	bcbsptree.cmx ascsavelevel.cmx printobjects.cmx blockmapbase.cmx \
	blockmap.cmx bspcompmain.cmx

EDITOR = listextra.cmx editorextern.cmx requester.cmx vertexsbase.cmx \
        linedefsbase.cmx boolextra.cmx \
        sectorsbase.cmx angleextra.cmx floatextra.cmx location.cmx \
        bclinedefs.cmx editline.cmx editvertex.cmx editsector.cmx \
        ascsavedescr.cmx ascloaddescr.cmx redraw.cmx peu.cmx

SRENDER = floatextra.ml angleextra.ml bsptreebase.ml vertexsbase.ml \
	linedefsbase.ml sectorsbase.ml binloadlevel.ml renderextern.ml \
	renderinit.ml exitrender.ml location.ml renderview.ml \
	bclinedefs.ml bcbsptree.ml blockmap.ml blockmapbase.ml collision.ml \
	rendermain.ml

SBSPCOMP = boolextra.ml floatextra.ml listextra.ml location.ml \
	vertexsbase.ml linedefsbase.ml sectorsbase.ml bsptreebase.ml \
	ascloaddescr.ml binsavelevel.ml angleextra.ml bclinedefs.ml \
	bcbsptree.ml ascsavelevel.ml printobjects.ml blockmapbase.ml \
	blockmap.ml bspcompmain.ml

SEDITOR = listextra.ml editorextern.ml requester.ml vertexsbase.ml \
        linedefsbase.ml boolextra.ml \
        sectorsbase.ml angleextra.ml floatextra.ml location.ml \
        bclinedefs.ml editline.ml editvertex.ml editsector.ml \
        ascsavedescr.ml ascloaddescr.ml redraw.ml peu.ml


all: editor bspcomp render

editor: $(EDITOR)
	$(CAMLC) unix.cmxa $(WITH_TK_OPT) $(EDITOR) -o editor -cclib -lunix

bspcomp: $(BSPCOMP)
	$(CAMLC) unix.cmxa $(BSPCOMP) -o bspcomp -cclib -lunix

render: giflib $(RENDER) $(COBJS)
	$(CAMLC) unix.cmxa $(COBJS) gif/gd.cmx $(RENDER) -o renderopt \
		-cclib -lvga -cclib -lunix -cclib -Lgif/ -cclib -lgif

giflib:
	cd $(GIFLIBDIR); make




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


.ml.cmx:
	$(CAMLC) $(MLCOMPFLAGS) -c $<

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

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


clean:
	rm -f gif/*.cm[iox] gif/*.o gif/*~
	rm -f *.cm[iox] *.o *~
	rm -f *~
	rm -f editor bspcomp renderopt


depend: $(SRENDER) $(SBSPCOMP) $(SEDITOR) gif/gd.mli gif/*.ml
	$(CAMLDEP) $(SRENDER) $(SBSPCOMP) $(SEDITOR) gif/*.mli gif/*.ml > .depend


include .depend
# DO NOT DELETE
