summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/ocamlbuild/FAQ
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/ocamlbuild/FAQ')
-rw-r--r--ocaml-binary-annot/ocamlbuild/FAQ35
1 files changed, 35 insertions, 0 deletions
diff --git a/ocaml-binary-annot/ocamlbuild/FAQ b/ocaml-binary-annot/ocamlbuild/FAQ
new file mode 100644
index 0000000000..b71516b9e3
--- /dev/null
+++ b/ocaml-binary-annot/ocamlbuild/FAQ
@@ -0,0 +1,35 @@
+Q: I've a directory with examples and I want build all of them easily?
+
+R:
+
+ You can use an .itarget file listing all products that you want.
+
+ $ cat examples.itarget
+ examples/a.byte
+ examples/b.byte
+
+ $ ocamlbuild examples.otarget
+
+ You can also have a dynamic rule that read the examples directory:
+
+ $ cat myocamlbuild.ml
+ open Ocamlbuild_plugin;;
+
+ dispatch begin function
+ | After_rules ->
+ let examples =
+ Array.fold_right begin fun f acc ->
+ if Pathname.get_extension f = "ml" then
+ ("examples" / Pathname.update_extension "byte" f) :: acc
+ else
+ acc
+ end (Pathname.readdir "examples") []
+ in
+ rule "All examples"
+ ~prod:"examples.otarget"
+ ~deps:examples
+ (fun _ _ -> Command.Nop)
+ | _ -> ()
+ end
+
+ $ ocamlbuild examples.otarget