おまけ(OMake)を試す
30分プログラム、その369。どうやらomakeがすごいらしい(id:camlspotter:20080718:1216345119)。
omake -Pによる継続ビルドとか素敵すぎる。これがあれば、fcwrapとかflymakeとかいらないんじゃね?
適当にドキュメントを眺めていたら、オブジェクト指向とか遅延評価とか対話環境とか、とてもビルドツールとは思えない単語が踊っていた。すばらしすぎる。
準備
ビルドしたいディレクトリで、omake --installとするとOMakefileとかの雛形を作ってくれる。
$ cd ~/omake-test $ omake --install *** omake: creating OMakeroot *** omake: creating OMakefile ** omake: project files OMakefile and OMakeroot have been installed *** omake: you should edit these files before continuing
サンプルコード
サンプルとして、こんなhello.mlを用意した。
let () = print_endline "hello,world"
make
で、OMakefileに次の一行を加える。似たようなコマンドがコメントの形で用意されているので、それを編集してもいい。
.DEFAULT: $(OCamlProgram hello_test,hello)
で、ビルドする。
$ omake
できた!
$ ./hello_test hello,world
Globを使ってみる
ファイルが増えるたびに、OMakefileを書き換えるのが嫌だったので、Globを使って全部のmlをビルドするようにしてみた。
.DEFAULT: $(OCamlProgram hello_test,$(removesuffix $(glob *.ml)))
でも、omake -Pによる継続ビルドで、新規に追加したファイルを追跡してくれなくなるので、あまり嬉しくないかもしれない。