36 lines
869 B
Plaintext
36 lines
869 B
Plaintext
|
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
|