include ../Makefile.config

ifdef PACK_DRIVER_DriverGL
PACK:=$(PACK) -package $(PACK_DRIVER_DriverGL)
NATIVE_EXTRA+=Patoline/PatolineGL
endif
ifdef PACK_DRIVER_GL2
PACK:=$(PACK) -package $(PACK_DRIVER_DriverGL2)
NATIVE_EXTRA+=Patoline/PatolineGL2
endif

CAMLOPT=ocamlfind ocamlopt $(PACK) -pp $(CPP) -I ../Typography/_build -I ../Rbuffer -I ../Patoline
CAMLMKLIB=ocamlfind ocamlmklib $(PACK) -I ../Typography/_build -I ../Rbuffer -I ../Patoline
CAMLC=ocamlfind ocamlc $(PACK) -pp $(CPP) -I ../Typography/_build -I ../Rbuffer -I ../Patoline


UNAME := $(shell uname)

ifeq ($(UNAME), Linux)
CFLAGS=-fPIC
endif
ifeq ($(UNAME), Darwin)
CFLAGS=-I$(shell ocamlc -where) -fPIC # -framework GLUT -framework OpenGL
endif

Html.cmxa:Html.cmx ../Typography/_build/Typography.cmi
	$(CAMLOPT) -a -o $@ HtmlFonts.cmx SVG.cmx Html.cmx
SVG.cmxa:SVG.cmx HtmlFonts.cmx ../Typography/_build/Typography.cmi
	$(CAMLOPT) -a -o $@ HtmlFonts.cmx SVG.cmx
DriverGL.cmxa:DriverGL.cmx FrameBuffer.o GlFBO.cmx  ../Typography/_build/Typography.cmi
	$(CAMLMKLIB) -package str -o DriverGL FrameBuffer.o GlFBO.cmx Vec3.cmx DriverGL.cmx
Image.cmxa:DriverGL.cmx Image.cmx ../Typography/_build/Typography.cmi
	$(CAMLMKLIB) -o Image FrameBuffer.o DriverGL.cmx Language.cmx Image.cmx
Pdf.cmxa:Pdf.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ Pdf.cmx
Bin.cmxa:Bin.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ Bin.cmx
DriverGL2.cmxa:DriverGL2.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ DriverGL2.cmx
Net.cmxa:Net.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ Net.cmx
None.cmxa:None.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ None.cmx

DriverCairo.cmxa:DriverCairo.cmx ../Typography/_build/Typography.cmxa
	$(CAMLOPT) -a -o $@ DriverCairo.cmx

DriverCairo.cmx:DriverCairo.ml ../Typography/_build/Typography.cmx
	$(CAMLOPT) -package cairo -c -o $@ DriverCairo.ml

Html.cmx:Html.ml SVG.cmx HtmlFonts.cmx
SVG.cmx:SVG.ml HtmlFonts.cmx
Net.cmx:Net.ml SVG.cmx HtmlFonts.cmx
DriverGL.cmx:DriverGL.ml FrameBuffer.o GlFBO.cmx Vec3.cmx
	$(CAMLOPT) -package $(PACK_DRIVER_DriverGL) -c -o $@ $<
Image.cmx:Image.ml DriverGL.cmx ../Patoline/Language.cmx
GLNet.cmx:GLNet.ml
	$(CAMLOPT) $(PACK_DRIVER_GL) -c -o $@ $<

%.cmx:%.ml ../Typography/_build/Typography.cmi ../Typography/_build/Typography.cmx
	$(CAMLOPT) -c -o $@ $<

clean:
	rm -f *.cm[aoix] *.cmxa *.o *.so *.a *~ \#*\#
