Build System の悪夢2006年07月08日 12時43分30秒

最近 make の変わりを探している。一番の悩みは亜種が多く、互換のない拡張がとても多いことだ。

元祖 make から、nmake や BSD make や GNU make。どれもこれも違った拡張を実装している。拡張を使わないとどうにもならない事も多い。たとえば include である。BSD make と GNU make の include の構文は微妙に違う。同じ include も使えるが、実際に役に立つのは、追加オプションを与えたときである。結局、Makefile の互換性は損なわれる。そこで、互換性に悩まされる事のない、代替はないかと探していたのである。

そこで、Make Alternative を読んだわけだ。結論は「自分で選んでくれ。」との事。大した記事ではなかった。ただ、いくつかのソフトウェアの名前を上げただけ。せめて、簡単な例と共になぜそのような長所と短所を持つのかをあげて欲しいと思った。

例えば、Ant の設定は XML で書かれているから if などの条件や反復の構文は XML の特性上記述が難しいとある。Ant を知っていて、どのような XML を書けばいいのか知っているからその部分は分かった。しかし、それらを知らなければ、なぜなのかが見当もつかないのである。結局 Jam や Cook については、何もこの記事からは得られなかった。

かなりのページが書かれている割には内容は薄い。最初、あまりの量に読むのが面倒になり、折角なので google の翻訳を試してみることにした。

それが、間違いだった。紹介されているのが make や cook、jam、ant である。日本語への翻訳は失敗した。いや、一応日本語の文字列には変換されてはいたが。むしろ、暗号化された。 Make Clones と 「make の派生物」の紹介が「クローンを作りなさい。」とくるのだから。

少なくても翻訳は日本語ではなかったので、翻訳を読むのは止めた。頑張って一文を読もうとはしたが、読めない。解らないのだ。あまりに難解なので英文と照らし合わせながら、読むことにした。右を見て、左を見て。英文を直接読むより大変だった。

ソフトウェアに一般的な名詞や動詞の名前をつけるのは絶対に止めましょう。検索する時に、全然関係ないものに当たる確率が跳ね上がります。また、自動翻訳機を自動暗号機に変換してしまいます。