おまけ(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による継続ビルドで、新規に追加したファイルを追跡してくれなくなるので、あまり嬉しくないかもしれない。