Mackey's Lab

博士を取るまでの備忘録

waf の導入

大学の研究室で Espresso というシステムを開発している。これは基本的に C++ で書かれているので最初(プログラム全体が小さいうち)は手作業で Makefile を書いていたのだが、さすがにそろそろ限界が近づいてきたのでビルドシステムを導入することを決意。

Linux 環境でプログラムをソースコードからインストールしたことがある人は分かるだろうが、Autotools や CMake、Ant などのことである。

今回はそのうち、Python ベースで記述された waf というビルドシステムをプロジェクトに導入したのでそのメモ。

waf - The meta build system - Google Project Hosting

今回は下記のブログを参考にした。
waf チュートリアル - 純粋関数型雑記帳

基本的な waf のコンセプト、インストールの方法はこのブログがおそらく一番参考になる。しかし、私がダウンロードした waf-1.8 系においては仕様変更があったようで、このブログの通りにしても動かない。(実はココでハマッった)

というわけで本家本元のドキュメントを漁ることに。(結局ドキュメントを見るのが一番と改めて認識)

waf-1.8系のドキュメント: The Waf Book

具体的には、上記のチュートリアルブログにある wscript の書き方を以下のように変更する必要がある。

waf-1.8系 wscript

 

これでうまくいく。なお、Library を作るときは以前のように features で指定するのではなく bld.program を bld.stlib (静的ライブラリ) や bld.shlib (ダイナミックライブラリ)を指定すれば良い。詳しくはドキュメント参照のこと。