use -thread for curl_lwt too
[ocurl.git] / Makefile.in
blobfc35ca49221c78a1a9db2a4fbb997b05e2c51b23
1 ###
2 ### @configure_input@
3 ###
5 .PHONY: all targets examples install clean distclean depend release doc build test reinstall gen
7 .SUFFIXES: .ml .mli .cmx .cmi .cmo .cmxs .cmxa .cma .c @EXT_OBJ@
9 INSTALLDIR = @INSTALLDIR@
10 INSTALL = @INSTALL@
11 INSTALLDATA = @INSTALL_DATA@
13 FINDLIB = @OCAMLFIND@
14 OCAMLC = @OCAMLC@
15 OCAMLOPT = @OCAMLOPT@
16 OCAMLDEP = @OCAMLDEP@
17 OCAMLMKLIB = @OCAMLMKLIB@
19 EXT_LIB = @EXT_LIB@
20 EXT_OBJ = @EXT_OBJ@
21 EXT_DLL = @EXT_DLL@
23 FLAGS = -g
24 ifeq (@OCAML_HAS_BIN_ANNOT@,yes)
25 FLAGS += -bin-annot
26 endif
27 LIBS =
29 CFLAGS = @CFLAGS@ @DEFS@ -Wall -Wundef
31 CURLHELPEROBJS = curl-helper$(EXT_OBJ)
32 CURLOBJS = curl.cmx
33 CURLBCOBJS = $(CURLOBJS:.cmx=.cmo)
35 CLIBS = @CURLLIBS@
37 TARGETS := curl.cma libcurl-helper$(EXT_LIB) dllcurl-helper$(EXT_DLL)
38 ifneq (@OCAML_PKG_lwt_unix@,no)
39 TARGETS += curl_lwt.cmo
40 endif
41 ifeq (@OCAMLBEST@,opt)
42 TARGETS += curl.cmxa curl.cmx curl.cmxs
43 ifneq (@OCAML_PKG_lwt_unix@,no)
44 TARGETS += curl_lwt.cmx curl_lwt.cmxs
45 endif
46 endif
48 INSTALL_TARGETS = curl$(EXT_LIB) curl.cmi curl.mli $(TARGETS)
49 ifeq (@OCAML_HAS_BIN_ANNOT@,yes)
50 INSTALL_TARGETS += curl.cmt curl.cmti
51 endif
52 ifneq (@OCAML_PKG_lwt_unix@,no)
53 INSTALL_TARGETS += curl_lwt.cmi curl_lwt.mli curl_lwt$(EXT_OBJ)
54 ifeq (@OCAML_HAS_BIN_ANNOT@,yes)
55 INSTALL_TARGETS += curl_lwt.cmt curl_lwt.cmti
56 endif
57 endif
59 all:
60 @$(MAKE) depend
61 @$(MAKE) $(TARGETS)
63 build: all
65 test: examples
66 examples/test_cb_exn
67 examples/test_memory_leaks
68 ifneq (@OCAML_PKG_lwt_unix@,no)
69 examples/test_lwt_unit
70 endif
71 ifeq (@OCAMLBEST@,opt)
72 examples/test_cb_exn.opt
73 examples/test_memory_leaks.opt
74 ifneq (@OCAML_PKG_lwt_unix@,no)
75 examples/test_lwt_unit.opt
76 endif
77 endif
79 gen: all
80 (cd examples; $(MAKE) test_enum)
81 examples/test_enum
83 doc:
84 mkdir -p doc
85 ifneq (@OCAML_PKG_lwt_unix@,no)
86 ocamlfind ocamldoc -html -d doc -package lwt curl.mli curl_lwt.mli
87 else
88 ocamldoc -html -d doc curl.mli
89 endif
91 examples: all
92 (cd examples; $(MAKE))
94 curl.cma: $(CURLBCOBJS) dllcurl-helper$(EXT_DLL)
95 $(OCAMLMKLIB) -o curl $(CURLBCOBJS) -oc curl-helper $(CLIBS)
97 curl.cmxa: $(CURLOBJS) dllcurl-helper$(EXT_DLL)
98 $(OCAMLMKLIB) -o curl $(CURLOBJS) -oc curl-helper $(CLIBS)
100 curl.cmxs: curl.cmxa
101 $(OCAMLOPT) -shared -linkall -I . $< -o $@
103 curl_lwt.cmo: curl_lwt.ml
104 $(FINDLIB) c -thread -package lwt.unix -c $(FLAGS) $< -o $@
106 curl_lwt.cmx: curl_lwt.ml
107 $(FINDLIB) opt -thread -package lwt.unix -c $(FLAGS) $< -o $@
109 curl_lwt.cmxs: curl_lwt.cmx
110 $(FINDLIB) opt -thread -shared -linkall -package lwt.unix $< -o $@
112 curl_lwt.cmi: curl_lwt.mli
113 $(FINDLIB) c -package lwt -c $(FLAGS) $< -o $@
115 .ml.cmx:
116 $(OCAMLOPT) -c $(FLAGS) $< -o $@
118 .mli.cmi:
119 $(OCAMLC) -c $(FLAGS) $< -o $@
121 .ml.cmo:
122 $(OCAMLC) -c $(FLAGS) $< -o $@
124 libcurl-helper$(EXT_LIB) dllcurl-helper$(EXT_DLL): $(CURLHELPEROBJS)
125 $(OCAMLMKLIB) -oc curl-helper $(CURLHELPEROBJS) $(CLIBS)
127 .c$(EXT_OBJ):
128 $(OCAMLC) -c -ccopt "$(CFLAGS)" $<
130 install:
131 ifneq (@OCAMLFIND@,no)
132 $(FINDLIB) install -patch-version @PACKAGE_VERSION@ -ldconf ignore curl META $(INSTALL_TARGETS)
133 else
134 mkdir -p $(INSTALLDIR)
135 $(INSTALLDATA) curl.cma $(INSTALLDIR)
136 ifeq (@OCAMLBEST@,opt)
137 $(INSTALLDATA) curl.cmxa $(INSTALLDIR)
138 endif
139 $(INSTALLDATA) curl.mli curl.cmi $(INSTALLDIR)
140 $(INSTALLDATA) curl$(EXT_LIB) libcurl-helper$(EXT_LIB) $(INSTALLDIR)
141 endif
143 uninstall:
144 ifneq (@OCAMLFIND@,no)
145 $(FINDLIB) remove curl
146 else
147 (cd $(INSTALLDIR) && rm -f curl.cma curl.cmxa curl.mli curl.cmi curl$(EXT_LIB) libcurl-helper$(EXT_LIB))
148 rmdir $(INSTALLDIR)
149 endif
151 reinstall:
152 $(MAKE) uninstall
153 $(MAKE) install
155 NAME=@PACKAGE_NAME@-@PACKAGE_VERSION@
157 release:
158 git tag -a -m @PACKAGE_VERSION@ @PACKAGE_VERSION@
159 git archive --prefix=$(NAME)/ @PACKAGE_VERSION@ | gzip > $(NAME).tar.gz
160 gpg -a -b $(NAME).tar.gz
162 clean:
163 @rm -f $(TARGETS) *~ *.cm* *$(EXT_OBJ) *$(EXT_LIB) *$(EXT_DLL) .depend core
164 @(cd examples; $(MAKE) clean)
166 distclean: clean
167 @rm -f config.log config.status config.h examples/Makefile
168 @rm -f Makefile
170 depend:
171 @$(OCAMLDEP) *.mli $(filter-out errors.ml print_ext.ml, $(wildcard *.ml)) > .depend
173 ifeq ($(wildcard .depend),.depend)
174 ifneq ($(MAKECMDGOALS),clean)
175 include .depend
176 endif
177 endif