Permalink
Browse files

modernize ocamlbuild commands (3.12+)

  • Loading branch information...
1 parent e8378da commit c5cb773265d3e1f06f1ebd173582ff1ecb55617b @mlin committed Jan 18, 2015
Showing with 11 additions and 381 deletions.
  1. +3 −3 lib/CamlPaml/Makefile
  2. +3 −3 lib/CamlPaml/_tags
  3. +0 −185 lib/CamlPaml/myocamlbuild.ml
  4. +3 −3 src/Makefile
  5. +2 −2 src/_tags
  6. +0 −185 src/myocamlbuild.ml
View
@@ -1,10 +1,10 @@
LIBNAME = CamlPaml
lib:
- ocamlbuild ${LIBNAME}.cma ${LIBNAME}.cmxa
+ ocamlbuild -use-ocamlfind ${LIBNAME}.cma ${LIBNAME}.cmxa
test:
- ocamlbuild test.native
+ ocamlbuild -use-ocamlfind test.native
_build/test.native
@@ -23,4 +23,4 @@ clean:
ocamlbuild -clean
doc:
- ocamlbuild ${LIBNAME}.docdir/index.html
+ ocamlbuild -use-ocamlfind ${LIBNAME}.docdir/index.html
View
@@ -1,7 +1,7 @@
-<**/*.ml> or <**/*.mli>: ocaml, debug, pkg_gsl, pp(ocaml+twt)
+<**/*.ml> or <**/*.mli>: ocaml, debug, package(gsl), pp(ocaml+twt)
<**/NewickLexer.*>: -pp(ocaml+twt)
<**/NewickParser.*>: -pp(ocaml+twt)
<**/*.cmx>: for-pack(CamlPaml)
<CamlPaml.cmx>: -for-pack(CamlPaml)
-<test.ml>: pkg_oUnit
-<test.native>: pkg_gsl, pkg_oUnit
+<test.ml>: package(oUnit)
+<test.native>: package(gsl), package(oUnit)
@@ -1,185 +0,0 @@
-open Ocamlbuild_plugin
-open Command (* no longer needed for OCaml >= 3.10.2 *)
-
-(**
- Overview of tags:
- - [pkg_batteries] to use Batteries as a library, without syntax extensions
- - [use_batteries] and [use_batteries_r] to use both Batteries and all the non-destructive syntax extensions
- - [pkg_sexplib.syntax] with [syntax_camlp4o] or [syntax_camlp4r] for sexplib
-*)
-
-
-(**
- {1 OCamlFind}
-*)
-
-let run_and_read = Ocamlbuild_pack.My_unix.run_and_read
-
-let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
-
-module OCamlFind =
-struct
- (* this lists all supported packages *)
- let find_packages () =
- blank_sep_strings &
- Lexing.from_string &
- run_and_read "ocamlfind list | cut -d' ' -f1"
-
- (* this is supposed to list available syntaxes, but I don't know how to do it. *)
- let find_syntaxes () = ["camlp4o"; "camlp4r"]
-
- (* ocamlfind command *)
- let ocamlfind x = S[A"ocamlfind"; x]
-
- let before_options () =
- (* by using Before_options one let command line options have an higher priority *)
- (* on the contrary using After_options will guarantee to have the higher priority *)
-
- (* override default commands by ocamlfind ones *)
- Options.ocamlc := ocamlfind & A"ocamlc";
- Options.ocamlopt := ocamlfind & A"ocamlopt";
- Options.ocamldep := ocamlfind & A"ocamldep";
- Options.ocamldoc := ocamlfind & A"ocamldoc";
- Options.ocamlmktop := ocamlfind & A"ocamlmktop"
-
- let get_ocamldoc_directory () =
- let ocamldoc_directory = run_and_read "ocamlfind ocamldoc -customdir" in
- let length = String.length ocamldoc_directory in
- assert (length != 0);
- let char = ocamldoc_directory.[length - 1] in
- if (char = '\n') || (char = '\r') then String.sub ocamldoc_directory 0 (length - 1)
- else ocamldoc_directory
-
- let after_rules () =
- (* When one link an OCaml library/binary/package, one should use -linkpkg *)
- flag ["ocaml"; "byte"; "link"; "program"] & A"-linkpkg";
- flag ["ocaml"; "native"; "link"; "program"] & A"-linkpkg";
-
-
- (* For each ocamlfind package one inject the -package option when
- * compiling, computing dependencies, generating documentation and
- * linking. *)
- List.iter begin fun pkg ->
- flag ["ocaml"; "compile"; "pkg_"^pkg] & S[A"-package"; A pkg];
- flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S[A"-package"; A pkg];
- flag ["ocaml"; "doc"; "pkg_"^pkg] & S[A"-package"; A pkg];
- flag ["ocaml"; "link"; "pkg_"^pkg] & S[A"-package"; A pkg];
- end (find_packages ());
-
- (* Like -package but for extensions syntax. Morover -syntax is useless
- * when linking. *)
- List.iter begin fun syntax ->
- flag ["ocaml"; "compile"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
- flag ["ocaml"; "ocamldep"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
- flag ["ocaml"; "doc"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
- end (find_syntaxes ());
-
- (* The default "thread" tag is not compatible with ocamlfind.
- Indeed, the default rules add the "threads.cma" or "threads.cmxa"
- options when using this tag. When using the "-linkpkg" option with
- ocamlfind, this module will then be added twice on the command line.
-
- To solve this, one approach is to add the "-thread" option when using
- the "threads" package using the previous plugin.
- *)
- flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]);
- flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
-end
-
-(**
- {1 OCaml Batteries Included}
-*)
-
-module Batteries =
-struct
- let before_options () = ()
-
- let after_rules () =
- flag ["ocaml"; "link"; "byte"; "use_ocamldoc_info"] (S[A "-I"; A "+ocamldoc"; A "odoc_info.cma"]);
- flag ["ocaml"; "link"; "native"; "use_ocamldoc_info"] (S[A "-I"; A "+ocamldoc"(*; A "odoc_info.cmxa"*)]);
- flag ["ocaml"; "docfile"; "use_ocamldoc_info"] (S[A "-I"; A "+ocamldoc"]);
- flag ["ocaml"; "docdir"; "use_ocamldoc_info"] (S[A "-I"; A "+ocamldoc"]);
- flag ["ocaml"; "doc"; "use_ocamldoc_info"] (S[A "-I"; A "+ocamldoc"]);
-
- (*The command-line for [use_batteries] and [use_batteries_r]*)
-
- let cl_use_boilerplate = [A"-package"; A "batteries.pa_type_conv.syntax,batteries,sexplib.syntax"]
- and cl_use_batteries = [A"-package"; A "batteries.pa_openin.syntax,batteries.pa_where.syntax,batteries.pa_batteries.syntax"; A "-package"; A "batteries"]
- and cl_use_batteries_o = []
- (*[cl_use_batteries_o]: extensions which only make sense in original syntax*)
- and cl_camlp4o = [A"-syntax"; A "camlp4o"]
- and cl_camlp4r = [A"-syntax"; A "camlp4r"] in
-
- let cl_boilerplate_original = cl_use_boilerplate @ cl_camlp4o
- and cl_boilerplate_revised = cl_use_boilerplate @ cl_camlp4r
- and cl_batteries_original = cl_use_batteries @ cl_use_batteries_o @ cl_camlp4o
- and cl_batteries_revised = cl_use_batteries @ cl_camlp4r in
-
- (** Tag [use_boilerplate] provides boilerplate syntax extensions,
- in original syntax*)
-
- flag ["ocaml"; "compile"; "use_boilerplate"] & S cl_boilerplate_original ;
- flag ["ocaml"; "ocamldep"; "use_boilerplate"] & S cl_boilerplate_original ;
- flag ["ocaml"; "doc"; "use_boilerplate"] & S cl_boilerplate_original ;
- flag ["ocaml"; "link"; "use_boilerplate"] & S cl_boilerplate_original ;
-
- (** Tag [use_boilerplate_r] provides boilerplate syntax extensions,
- in original syntax*)
-
- flag ["ocaml"; "compile"; "use_boilerplate_r"] & S cl_boilerplate_revised ;
- flag ["ocaml"; "ocamldep"; "use_boilerplate_r"] & S cl_boilerplate_revised ;
- flag ["ocaml"; "doc"; "use_boilerplate_r"] & S cl_boilerplate_revised ;
- flag ["ocaml"; "link"; "use_boilerplate_r"] & S cl_boilerplate_revised ;
-
- (** Tag [use_batteries] provides both package [batteries]
- and all syntax extensions, in original syntax. *)
-
- flag ["ocaml"; "compile"; "use_batteries"] & S cl_batteries_original ;
- flag ["ocaml"; "ocamldep"; "use_batteries"] & S cl_batteries_original ;
- flag ["ocaml"; "doc"; "use_batteries"] & S cl_batteries_original ;
- flag ["ocaml"; "link"; "use_batteries"] & S cl_batteries_original ;
-
- (** Tag [use_batteries_r] provides both package [batteries]
- and all syntax extensions, in revised syntax. *)
-
- flag ["ocaml"; "compile"; "use_batteries_r"] & S cl_batteries_revised;
- flag ["ocaml"; "ocamldep"; "use_batteries_r"] & S cl_batteries_revised;
- flag ["ocaml"; "doc"; "use_batteries_r"] & S cl_batteries_revised;
- flag ["ocaml"; "link"; "use_batteries_r"] & S cl_batteries_revised
-
-
-(* flag ["ocaml"; "compile"; "use_batteries"] & S[A "-verbose";
- A"-package"; A "batteries.syntax.full";
- A"-syntax"; A "batteries.syntax.full"];
- flag ["ocaml"; "ocamldep"; "use_batteries"] & S[A "-verbose";
- A"-package"; A "batteries.syntax.full";
- A"-syntax"; A "batteries.syntax.full"];
- flag ["ocaml"; "doc"; "use_batteries"] & S[A "-verbose";
- A"-package"; A "batteries.syntax.full";
- A"-syntax"; A "batteries.syntax.full"];
- flag ["ocaml"; "link"; "use_batteries"] & S[A "-verbose";
- A"-package"; A "batteries.syntax.full";
- A"-syntax"; A "batteries.syntax.full"];*)
-
-
-end
-
-let _ = dispatch begin function
- | Before_options ->
- OCamlFind.before_options ();
- Batteries.before_options ()
- | After_rules ->
- OCamlFind.after_rules ();
- Batteries.after_rules ()
-
-
- | _ -> ()
-end
-
-
-
-(**
- which ocamlrun -> header
-
- print_backtrace -> ajouter "-b" après le header
-**)
View
@@ -1,6 +1,6 @@
OCAMLBUILDFLAGS=
ifdef FORKWORK
-OCAMLBUILDFLAGS=-tag pkg_forkwork
+OCAMLBUILDFLAGS=-tag "package(forkwork)"
endif
all:
@@ -10,13 +10,13 @@ ifdef FORKWORK
else
ln -s ForkNo.ml ForkMaybe.ml
endif
- ocamlbuild $(OCAMLBUILDFLAGS) PhyloCSF.native
+ ocamlbuild -use-ocamlfind $(OCAMLBUILDFLAGS) PhyloCSF.native
test: testexe
./test.native -verbose
testexe: all
- ocamlbuild $(OCAMLBUILDFLAGS) testSim.native test.native
+ ocamlbuild -use-ocamlfind $(OCAMLBUILDFLAGS) testSim.native test.native
clean:
rm -f *~
View
@@ -1,4 +1,4 @@
<**/*.ml> or <**/*.mli>: pp(ocaml+twt)
-<test.ml> or <test.native>: pkg_should, pkg_oUnit, pkg_str
-true: debug, pkg_batteries, pkg_CamlPaml
+<test.ml> or <test.native>: package(should), package(oUnit), package(str)
+true: debug, package(batteries), package(CamlPaml)
Oops, something went wrong.

0 comments on commit c5cb773

Please sign in to comment.