update README and copyrights, cleanup comments
[ocaml-event.git] / Makefile
blob404c504366d0e09754095d10909c58f561486183
3 # Change this to match your libevent installation.
4 EVENT_LIB=-levent
5 EVENT_LIBDIR=/usr/local/lib
6 EVENT_INCDIR=/usr/local/include
8 NAME=liboevent
9 OBJECTS=libevent.cmo
10 XOBJECTS=$(OBJECTS:.cmo=.cmx)
11 C_OBJECTS=event_stubs.o
13 ARCHIVE=$(NAME).cma
14 XARCHIVE=$(ARCHIVE:.cma=.cmxa)
15 CARCHIVE_NAME=mloevent
16 CARCHIVE=lib$(CARCHIVE_NAME).a
18 # Flags for the C compiler.
19 CFLAGS=-DFULL_UNROLL -Wall -O2 -I$(EVENT_INCDIR)
21 OCAMLC=ocamlc
22 OCAMLOPT=ocamlopt
23 OCAMLDEP=ocamldep
24 OCAMLMKLIB=ocamlmklib
25 OCAMLDOC=ocamldoc
26 OCAMLFIND=ocamlfind
28 .PHONY: build
29 build: all allopt
31 .PHONY: all
32 all: $(ARCHIVE)
33 .PHONY: allopt
34 allopt: $(XARCHIVE)
36 depend: *.c *.ml *.mli
37 gcc -MM *.c > depend
38 $(OCAMLDEP) *.mli *.ml >> depend
40 ## Library creation
41 $(CARCHIVE): $(C_OBJECTS)
42 $(OCAMLMKLIB) -oc $(CARCHIVE_NAME) $(C_OBJECTS) \
43 -L$(EVENT_LIBDIR) $(EVENT_LIB)
44 $(ARCHIVE): $(CARCHIVE) $(OBJECTS)
45 $(OCAMLMKLIB) -o $(NAME) $(OBJECTS) -oc $(CARCHIVE_NAME) \
46 -L$(EVENT_LIBDIR) $(EVENT_LIB)
47 $(XARCHIVE): $(CARCHIVE) $(XOBJECTS)
48 $(OCAMLMKLIB) -o $(NAME) $(XOBJECTS) -oc $(CARCHIVE_NAME) \
49 -L$(EVENT_LIBDIR) $(EVENT_LIB)
51 ## Installation
52 .PHONY: install
53 install:
54 { test ! -f $(XARCHIVE) || extra="$(XARCHIVE) $(OBJECTS:.cmo=.cmx) $(NAME).a"; }; \
55 $(OCAMLFIND) install event META $(OBJECTS:.cmo=.cmi) $(OBJECTS:.cmo=.mli) $(ARCHIVE) \
56 dll$(CARCHIVE_NAME).so lib$(CARCHIVE_NAME).a $$extra
58 .PHONY: uninstall
59 uninstall:
60 $(OCAMLFIND) remove event
62 ## Documentation
63 .PHONY: doc
64 doc: FORCE
65 cd doc; $(OCAMLDOC) -html -I .. ../*.mli
67 ## Testing
68 .PHONY: test
69 test: testbyte testopt
70 .PHONY: testbyte
71 testbyte: unittest
72 ./unittest
73 .PHONY: testopt
74 testopt: unittest.opt
75 ./unittest.opt
76 unittest: all unittest.ml
77 $(OCAMLFIND) ocamlc -dllpath . -o unittest -package oUnit -cclib -L. -linkpkg \
78 $(ARCHIVE) unittest.ml
79 unittest.opt: allopt unittest.ml
80 $(OCAMLFIND) ocamlopt -o unittest.opt -package oUnit -cclib -L. -linkpkg \
81 $(XARCHIVE) unittest.ml
83 ## Cleaning up
84 .PHONY: clean
85 clean::
86 rm -f *~ *.cm* *.o *.a *.so doc/*.html doc/*.css depend \
87 unittest unittest.opt
89 FORCE:
91 .SUFFIXES: .ml .mli .cmo .cmi .cmx
93 .mli.cmi:
94 $(OCAMLC) -c $(COMPFLAGS) $<
95 .ml.cmo:
96 $(OCAMLC) -c $(COMPLAGS) -nolabels $<
97 .ml.cmx:
98 $(OCAMLOPT) -c $(COMPFLAGS) -nolabels $<
99 .c.o:
100 $(OCAMLC) -c -ccopt "$(CFLAGS)" $<
102 include depend