ビルド・サバイバルガイド

この記事ではビルドファンが教えるかっこいいビルドの仕方について書いている。
何らかの理由でソースコードからビルドしなければならないなんてことは?

誰でも一度や二度はあると思う。
そーいう時、ビルドツールの使い方をググるだけでクタクタになるっていうのは全く馬鹿げたことだ。
これだけ知っていれば、楽にビルドできて、次のステップに進める様に主要なビルドツールの使い方を教えよう。

Makefile が存在する時

Makefile が存在する時というのはちょっと注意した方がいいかもしれない。
Makefile しか存在しないかもしれないのだ。

とりあえず、こういう時は make を使ってみよう。
こんな風に打つ:

% make

ああ、% はプロンプトを表していて、あなたは その後の make を打ってくれればいい。分かると思うけど。
make はカレントディレクトリの Makefile または GNUmakefile を探してそれを読み込んでデフォルトのタスクを処理してくれる。

ビルドできた? 少しでも error があるなら、それはおそらく失敗だ*1
ビルドできたなら、インストールしよう。
この場合、上記のコマンドを打ったならそれはビルドせよって make に指示したってことだ。
インストールするなら、別のコマンドを打つ必要がある:

% sudo make install

インストールする時、普通は /usr/local/ のような sudo が必要なディレクトリに置かれるため、sudo を付けてるよ。

make して make install これは他のビルドツールでも出てくるよ。しっかり覚えておこう。

Makefile が存在しない場合

Makefile が存在しない場合、Makefile を生成しなければいけないかもしれず、それ以外の方法を使わないといけないかもしれない。
ここでは、autotoolscmake について書こうと思う。

autotools な場合

configure とか configure.ac とか autogen.sh とかがある場合、autotools が使われている可能性が高い。

configure がある場合、普通に configure を実行する。こんな風に:

% ./configure

./ を付けているのは、他の configure を実行しないようにだ。
configureMakefile を生成する。
この後は Makefile がある場合と同じだ。

configure.ac がある場合、autoreconf を実行する。こんな風に:

% autoreconf

成功すると、configure が生成される。
この後は、configure がある場合と同じだ。

autogen.sh がある場合は、それを実行する。
configure.ac がある場合が多いが、autogen.sh した方が成功しやすい。

cmake な場合

CMakeLists.txt がある場合、cmake が使われている可能性がある。
cmakeMakefile を生成するためのコマンドだ。
こんな風に打つだけで、Makefile が生成されるはずだ:

% cmake .

後は Makefile がある場合と同じだ。

参考

*1:残念だけどこの記事ではそれの対処法については書かない