all: ncl bcl

PACKS:=unix

QUIET:=

SOURCES:=evo.c libev/ev.c ev.mli ev.ml evInit.ml

ANNOTATE:=1

CFLAGS:=-O2 -g -Ilibev

RESULT:=ocamlev

#CLIBFLAGS:=libev/.libs/libev.a

LIBEVLIBS:=-cclib -lrt 

OCAMLLDFLAGS:=$(LIBEVLIBS)

STATIC:=1

include OCamlMakefile

PRETARGETS += libev-config

LIBINSTALL_FILES := ev.mli ev.cmi evInit.cmo evInit.cmx evInit.o ocamlev.cma \
	            ocamlev.cmxa ocamlev.$(EXT_LIB) $(RES_CLIB) dllocamlev_stubs.so

FINDLIBNAME:=ev

TRASH:=libev-config

evtest: evtest.ml ocamlev.cma
	$(OCAMLC) -o $@ -custom -cclib -L. unix.cma ocamlev.cma evInit.cmo $<

evtest.opt: evtest.ml ocamlev.cma
	$(OCAMLOPT) -o $@ -cclib -L. unix.cmxa ocamlev.cmxa evInit.cmx $<

evunit: evunit.ml ocamlev.cma
	$(OCAMLFIND) ocamlc -linkpkg -package oUnit -o $@ -custom -cclib -L. unix.cma ocamlev.cma evInit.cmo $<

evunit.opt: evunit.ml ocamlev.cma
	$(OCAMLFIND) ocamlopt -linkpkg -package oUnit,unix -o $@ -cclib -L. ocamlev.cmxa evInit.cmx $<

torture1: torture1.ml libev-config evo.o libev/ev.o ev.cmo evInit.cmo
	$(OCAMLC) -o $@ -custom -cclib -L. unix.cma evo.o libev/ev.o ev.cmo evInit.cmo $<

torture1.opt: torture1.ml evo.o libev/ev.o ev.cmo evInit.cmo
	$(OCAMLOPT) -o $@ -cclib -L. unix.cmxa $(LIBEVLIBS) evo.o libev/ev.o ev.cmx evInit.cmx $< -g

evo.o: libev-config

libev/.libs/libev.a: libev-config
	touch libev-config

libev-config:
	cd libev && ./configure

example%: example%.ml evo.o ev.cmo evInit.cmo
	$(OCAMLC) -o $@ -custom -cclib -L. unix.cma $(LIBEVLIBS) evo.o ev.cmo evInit.cmo $<

libinstall:	all
	$(QUIET)printf "\nInstalling library with ocamlfind\n"
	$(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(FINDLIBNAME) META $(LIBINSTALL_FILES)
	$(QUIET)printf "\nInstallation successful.\n"

libuninstall:	all
	$(QUIET)printf "\nUninstalling library with ocamlfind\n"
	$(OCAMLFIND) remove $(FINDLIBNAME)
	$(QUIET)printf "\nUninstallation successful.\n"
