OCAMLABI := $(shell ocamlc -version)
OCAMLLIBDIR := $(shell ocamlc -where)
-OFILES := $(patsubst %.in,%,$(shell ls debian/*.in))
+OFILES_ALL := $(patsubst %.in,%,$(shell ls debian/*.in))
+OFILES := $(filter-out debian/rules, $(OFILES_ALL))
HAVE_OCAMLOPT := $(shell test -x /usr/bin/ocamlopt && echo "yes")
DEB_DH_GENCONTROL_ARGS = -- -VF:OCamlABI="$(OCAMLABI)"
DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(CURDIR)/debian/$(PKGNAME)$(OCAMLLIBDIR)
ocamlinit:
+ for f in $(OFILES_ALL); do sed -e 's/@OCamlABI@/$(OCAMLABI)/g' $$f.in > $$f; done
+
+makebuilddir/$(PKGNAME)::
for f in $(OFILES); do sed -e 's/@OCamlABI@/$(OCAMLABI)/g' $$f.in > $$f; done
ifeq ($(HAVE_OCAMLOPT),yes)
let callback req outchan =
if spec.auto_close then
Http_misc.finally
- (fun () -> try close_out outchan with Sys_error _ -> ())
+ (fun () ->
+ (* XXX the pair flush + shutdown is a temporary solution since double
+ * close on a socket make ocaml 3.09.2 segfault (see
+ * http://caml.inria.fr/mantis/view.php?id=4059). The right thing to
+ * do is probably invoke try_close outchan here *)
+ flush outchan;
+ try
+ Unix.shutdown (Unix.descr_of_out_channel outchan) Unix.SHUTDOWN_ALL
+ with Unix.Unix_error(_, "shutdown", "") -> ())
(fun () -> spec.callback req outchan) ()
else
spec.callback req outchan in