1--- a/Makefile 2012-02-04 01:24:21.000000000 +0000
2+++ b/Makefile 2014-10-29 14:42:08.690188302 +0000
3@@ -4,6 +4,8 @@
4 version.ml pipeline.mli pipeline.ml common.mli common.ml \
5 utils.mli utils.ml ocaml.mli ocaml.ml
6
7+CAMLP4 := $(shell ocamlfind query camlp4)
8+
9 STDBIN = $(shell dirname `which ocamlfind`)
10 ifndef PREFIX
11 PREFIX = $(shell dirname $(STDBIN))
12@@ -15,7 +17,7 @@
13 endif
14 export BINDIR
15
16-PACKS = unix str
17+PACKS = unix str findlib
18 PP = camlp4o -I . -parser pa_tryfinally.cmo -parser pa_opt.cmo
19 export PP
20
21@@ -36,11 +38,11 @@
22
23 common: version.ml
24 ocamlc -pp 'camlp4orf -loc _loc' -c \
25- -I +camlp4 pa_opt310.ml && \
26+ -I $(CAMLP4) pa_opt310.ml && \
27 cp pa_opt310.cmo pa_opt.cmo && \
28 cp pa_opt310.cmi pa_opt.cmi
29 ocamlc -pp 'camlp4orf -loc _loc' -c \
30- -I +camlp4 pa_tryfinally310.ml && \
31+ -I $(CAMLP4) pa_tryfinally310.ml && \
32 cp pa_tryfinally310.cmo pa_tryfinally.cmo && \
33 cp pa_tryfinally310.cmi pa_tryfinally.cmi
34
35--- a/main.ml 2014-11-08 09:05:12.516401313 +0000
36+++ b/main.ml 2014-11-08 09:09:59.801311230 +0000
37@@ -250,9 +250,15 @@
38 Sys.getcwd ())
39 | `File script_name -> "", get_dir script_name in
40
41+ let findlibdir =
42+ Filename.(
43+ concat (Findlib.package_directory "findlib") parent_dir_name
44+ ) in
45+
46 let file, oc = Filename.open_temp_file "meta" ".ml" in
47 fprintf oc "\
48 #%i %S;;
49+#directory \"%s\";;
50 #use \"topfind\";;
51 #require \"ocamlscript\";;
52 Ocamlscript.Common.verbose := %s;;
53@@ -261,7 +267,7 @@
54 open Ocamlscript;;
55 open Utils;;
56 #%i %S;;\n"
57- pos source verbose script_dir extra_args trash pos source;
58+ pos source findlibdir verbose script_dir extra_args trash pos source;
59
60 List.iter (output_line oc) lines;
61
62@@ -544,6 +550,7 @@
63 exit compilation_status
64
65 let _ =
66+ Findlib.init ();
67 try main ()
68 with Failure s ->
69 eprintf "ocamlscript: %s\n%!" s;
70