OCAMLCLANG = gcc -c -I/usr/local/lib/ocaml -DGLFW_USE_XF86VIDMODE -O9 -fomit-frame-pointer -ffast-math -mcpu=pentium -march=pentium
OCAMLC = ocamlc -c -thread -g
OCAMLOPT = ocamlopt -thread -c -unsafe -noassert
libs = glfw.cma glfw.cmxa libglfw.a dllglfw.so glfw.a
X11SRC = input.c enable.c fullscreen.c glext.c glfw_dyn.c init.c joystick.c window.c
OBJ = cglfw.o $(addprefix ./x11/,$(patsubst %.c,%.o,$(X11SRC)))
out = $(addprefix ../lib/,$(libs) glfw.cmi)

.c.o:
	$(OCAMLCLANG) $< -o $@

all: $(out)

$(out): $(libs) glfw.cmi
	cp $(libs) glfw.cmi ../lib

$(libs): glfw.cmx glfw.cmo $(OBJ)
	ocamlmklib -o glfw glfw.cmx -L/usr/X11/lib -lX11 -lXxf86vm -lXext
	ocamlmklib -o glfw glfw.cmo -L/usr/X11/lib -lX11 -lXxf86vm -lXext 
	ocamlmklib -o glfw $(OBJ) -L/usr/X11/lib -lX11 -lXxf86vm -lXext

glfw.cmx glfw.cmo glfw.cmi: glfw.ml
	$(OCAMLC) $<
	$(OCAMLOPT) $<

clean:
	@rm -f core a.out $(OBJ) glfw.o glfw.cm[iox] $(libs) $(out)
