私たちのプロジェクトではいつも、非常に長い Makefile を使用して、インストールやビルド、テスト、デプロイメントの処理を自動化しています。ターゲット名はほとんど標準化されていますが( make install 、 make deploy )、中には説明が必要なものもあります( make run-dev 、 make restart-api )。そして、詳細なmakeターゲットを追加するほど、それらの処理内容をテキスト形式で大量に記載しなければなりません。私たちのプロジェクトでは通常、このような文書を README ファイルに書いています。 しかしCLI(コマンドラインインタフェース)を用いる場合は、主に自己文書化ツールを使っています。 make と打つだけで、利用可能なコマンドとその説明が一覧表示されたら便利だと思いませんか? それを実現するのは、実はとても簡単です。まずは各ターゲッ
普段、自分でMakefileを書くことはほとんど無い。あったとしても、ちょっとしたプログラムでソースファイルとして数個のCソースがあるようなもの。なので、Makefileの知識は、ターゲットと依存関係を : で区切って書くとか、変数が使えて、その参照は$(~)でやるとか、そういうぐらいしかなかった。 ところが、ある程度の規模があるプログラムを作成することになり、ちょっと自分流Makefileというものを、ちゃんと作っておこうと思い立つ。一回作っておけば、使いまわしできるからね。 こんなことができれば・・・・という自分の要求は、以下のとおり。 中間ファイル(オブジェクトファイル)は、ソースとは別のディレクトリに吐き出させたい。ただし、ここで、元となるソースは複数のディレクトリ内に散在している。 ソースからインクルードしているヘッダなどの依存関係も、ちゃんとなんとかしてほしい ビルドは、最速で
UNIXでは、C/C++のソースコードをビルドするにはMakefileを書いてmakeツールを使うのが一般的です。しかし、Makefileを書くのは大変なので*1、もっと楽なツールを探すと出てくるものの一つがcmakeです*2。 cmakeのインストール(CentOS 5.2) # yum install cmake でインストールできます。 Hello, worldプログラムをcmakeでビルドする ビルド設定は、CMakeLists.txtという名前のファイルに記述します。とりあえずソースファイルと同じディレクトリに以下の内容で作成します。 CMakeLists.txtの作成 PROJECT(HelloWorld) ADD_EXECUTABLE(hello hello.cpp) cmakeコマンド実行 以下コマンドを実行します。 hello$ cmake . -- Check for
SCons SConsはmakeやAntのように数多くあるビルドツールのうち一つであり、Pythonで書かれている。 ビルド設定のファイルをPythonで記述することができ、またSCons自身が依存関係解析の機能を持っているため、 makeと比べるとずっと簡単にビルド環境を構築することができる。 Hello, World的なもの 以下のような簡単なCプログラムをSConsでビルドしてみる。 hello.c 1 #include <stdio.h> 2 int main (int argc, char *argv[]) { 3 printf("Hello, World!\n"); 4 return 0; 5 } 6
「ほとんど忘れた、Makefile」 にて: Makefileなんてもう何年も書いたことがないぞ。ウーン、だめだ、忘れている。 「忘れている」ってよりは、僕の知識じゃ古すぎて、改めて勉強しないとダメでした*1。 なにしろ、makeだけじゃ機能が貧弱なんで、cpp(Cプリプロセッサ)やm4(マクロプロセッサ)と組み合わせて使っていた頃しか知らんからね(古すぎ!)。今じゃGNU Makeを(使おうと思えば)どこでも使えるから、GNU Makeを習えばそれでいいじゃないかな。僕は、Windows上のMSYS(MinGW - Minimal SYStem)でGNU Makeを動かしました。 というわけで、GNU Makeの手習いをしたからメモしておきます。以下、名前がMakefileじゃなくても、GNU Makeへの指示を書いたファイルは何でもMakefileと呼びます。 [追記]id:paell
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く