OCAMLCLANG = ocamlc -thread -c -ccopt "-O9 -fomit-frame-pointer -ffast-math -mcpu=pentium -march=pentium"
OCAMLC = ocamlc -c -thread -g
OCAMLOPT = ocamlopt -thread -c -unsafe -noassert
libs = camlglut.cma camlglut.cmxa libcamlglut.a dllcamlglut.so camlglut.a
out = $(addprefix ../lib/,$(libs) glut.cmi)

all: $(out)

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

$(libs): glut.cmx glut.cmo cglut.o
	ocamlmklib -o camlglut glut.cmx -lglut
	ocamlmklib -o camlglut glut.cmo -lglut
	ocamlmklib -o camlglut cglut.o -lglut

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

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

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