translate EV_READ|EV_WRITE event type to READ
[ocaml-event.git] / Makefile
blob14b13476f667b7c415cb1e2f3545fa318a43e551
2 # $Id: Makefile,v 1.2 2009-11-26 08:49:02 maas Exp $
5 # Change this to match your libevent installation.
6 EVENT_LIB=-levent
7 EVENT_LIBDIR=/usr/local/lib
8 EVENT_INCDIR=/usr/local/include
10 NAME=liboevent
11 OBJECTS=liboevent.cmo
12 XOBJECTS=$(OBJECTS:.cmo=.cmx)
13 C_OBJECTS=event_stubs.o
15 ARCHIVE=$(NAME).cma
16 XARCHIVE=$(ARCHIVE:.cma=.cmxa)
17 CARCHIVE_NAME=mloevent
18 CARCHIVE=lib$(CARCHIVE_NAME).a
20 # Flags for the C compiler.
21 CFLAGS=-DFULL_UNROLL -Wall -O2 -I$(EVENT_INCDIR)
23 OCAMLC=ocamlc
24 OCAMLOPT=ocamlopt
25 OCAMLDEP=ocamldep
26 OCAMLMKLIB=ocamlmklib
27 OCAMLDOC=ocamldoc
28 OCAMLFIND=ocamlfind
30 .PHONY: all
31 all: $(ARCHIVE)
32 .PHONY: allopt
33 allopt: $(XARCHIVE)
35 depend: *.c *.ml *.mli
36 gcc -MM *.c > depend
37 $(OCAMLDEP) *.mli *.ml >> depend
39 ## Library creation
40 $(CARCHIVE): $(C_OBJECTS)
41 $(OCAMLMKLIB) -oc $(CARCHIVE_NAME) $(C_OBJECTS) \
42 -L$(EVENT_LIBDIR) $(EVENT_LIB)
43 $(ARCHIVE): $(CARCHIVE) $(OBJECTS)
44 $(OCAMLMKLIB) -o $(NAME) $(OBJECTS) -oc $(CARCHIVE_NAME) \
45 -L$(EVENT_LIBDIR) $(EVENT_LIB)
46 $(XARCHIVE): $(CARCHIVE) $(XOBJECTS)
47 $(OCAMLMKLIB) -o $(NAME) $(XOBJECTS) -oc $(CARCHIVE_NAME) \
48 -L$(EVENT_LIBDIR) $(EVENT_LIB)
50 ## Installation
51 .PHONY: install
52 install: all
53 { test ! -f $(XARCHIVE) || extra="$(XARCHIVE) $(NAME).a"; }; \
54 $(OCAMLFIND) install event META $(NAME).cmi $(NAME).mli $(ARCHIVE) \
55 dll$(CARCHIVE_NAME).so lib$(CARCHIVE_NAME).a $$extra
57 .PHONY: uninstall
58 uninstall:
59 $(OCAMLFIND) remove event
61 ## Documentation
62 .PHONY: doc
63 doc: FORCE
64 cd doc; $(OCAMLDOC) -html -I .. ../$(NAME).mli
66 ## Testing
67 .PHONY: testall
68 testall: test testopt
69 .PHONY: test
70 test: unittest
71 ./unittest
72 .PHONY: testopt
73 testopt: unittest.opt
74 ./unittest.opt
75 unittest: all unittest.ml
76 $(OCAMLFIND) ocamlc -o unittest -package oUnit -cclib -L. -linkpkg \
77 $(ARCHIVE) unittest.ml
78 unittest.opt: allopt unittest.ml
79 $(OCAMLFIND) ocamlopt -o unittest.opt -package oUnit -cclib -L. -linkpkg \
80 $(XARCHIVE) unittest.ml
82 ## Cleaning up
83 .PHONY: clean
84 clean::
85 rm -f *~ *.cm* *.o *.a *.so doc/*.html doc/*.css depend \
86 unittest unittest.opt
88 FORCE:
90 .SUFFIXES: .ml .mli .cmo .cmi .cmx
92 .mli.cmi:
93 $(OCAMLC) -c $(COMPFLAGS) $<
94 .ml.cmo:
95 $(OCAMLC) -c $(COMPLAGS) -nolabels $<
96 .ml.cmx:
97 $(OCAMLOPT) -c $(COMPFLAGS) -nolabels $<
98 .c.o:
99 $(OCAMLC) -c -ccopt "$(CFLAGS)" $<
101 include depend