Omake(おまけ)

id:mzpの日記で、Omakeというmakeツールが紹介されてるので使ってみたテスト。
ちなみにOCaml使いではない。

Win32環境に導入。

  1. 公式から、Win32インストーラ(.msi)をダウンロード。
  2. 好きな場所にいんすこ
  3. ウマー(゚∀゚)-!

実験

とりあえず昔作ってほかりっぱだったC++のプロジェクトで試してみる。

自分で書いたMakefileを消したうえで、

> omake --install

してみる。(id:mzp参考にした)
OMakefileとかが出来た。
こっちはCのプログラムなので、
OMakefileの中のCで必要な処理のあたりをコメントアウト
ついでにCFLAGSを修正(visual c++コンパイラでtemplate関連の変なエラーをつぶすオプション)
CFLAGS += /EHsc

> omake
...
...
InputDevice.cpp(5) : fatal error C1083: include ファイルを開けません。'dinput.h'
: No such file or directory

includeがどうのと文句をいわれた。
インクルードファイルのパスか。INCLUDES +=のところが空なので修正。
INCLUDES +=./include に。

それにしても、自分の環境はVisual C++なのに、clを認識してくれた。(clにパスは通してるけど。)
すばらしい。

> omake
...
...
LINK : fatal error LNK1104: ファイル 'dinput8.lib' を開くことができません。

おこられた。これはVisualC++のリンカのエラーだ。
ライブラリのパスが通ってない。
当然か。ライブラリとかってLDFLAGSで指定するんだっけ?
LDFLAGS+= /link /LIBPATH:./lib

通ったけど、CFLAGSの/EHscが無視されてる。
ああ、.cppだからCXXFLAGSか。

> omake
*** omake: reading OMakefiles
*** omake: finished reading OMakefiles (0.05 sec)
*** omake: done (0.27 sec, 0/8 scans, 1/9 rules, 2/134 digests)

めでたしめでたし。

ファイル変更の監視

> omake -P

すると常駐してファイルが変更されたら即座にmakeしてくれるらしい。
すげえ。
この機能がなければomake試さなかった。
で、早速試してみると、xyzzyさんがファイル消えた!とかいって勝手に終了しやがります。
どうもxyzzyがファイルアクセスを感知して、勝手にファイル退避させてしまう模様。
アレルギーかよ。

普通のテキストエディタは平気で、ファイル保存したらすぐomakeしてくれた。
かっこいいわ…。
自動ビルドとかEclipseだけの特権じゃないんだZE!