Вот один из способов сделать это с помощью myocamlbuild.ml и _tags.
В myocamlbuild.ml добавьте инструкцию flag
, чтобы позволить ocamlbuild распознавать новый тег — здесь keep_asm — который будет включать -S
для выбранных файлов при компиляции в native:
flag ["ocaml";"compile";"native";"keep_asm"] (S [A "-S"]);
Без строки "native"
в списке, переданном в flag
, флаг был бы включен для любого этапа компиляции с использованием ocaml (на что указывают строки "ocaml"
и "compile"
) и срабатывал бы когда вызывается ocamlc, что вам не нужно.
Таким образом, для полноценного автономного myocamlbuild.ml, выполняющего только вышеперечисленное, получится следующее:
open Ocamlbuild_plugin;;
open Command;;
dispatch begin function
| Before_rules ->
begin
end
| After_rules ->
begin
flag ["ocaml";"compile";"native";"keep_asm"] (S [ A "-S"]);
end
| _ -> ()
end
Определив новый тег, вы можете использовать его в файле _tags как любой другой тег, например:
<myfile.ml>: use_bigarray, keep_asm
person
didierc
schedule
06.12.2014