make代替ツール

Jam(just another make)とはmakeの様なビルドツールです。makeより後発に開発されたのでmakeよりはるかに優れています。
Windowsだとバイナリ配布、Linuxなどではapt-get install jamなどで簡単にインストールができるので手軽に試せます。

Jamの特徴は次の様な事があげられます。

  • 移植性がある。
    • 環境(Windows, Linux, etc)ごとにルールがあり、それを利用することにより簡単に移植性があるJamfileを書くことが可能。
  • 高速に実行される。
    • Jamfileを読み込み、構文解析をし、逐次的に実行されるのでとても高速に実行ができる。
  • 簡単に並列コンパイルができる。
    • オプションの引数に-j nとすればn個並列にコンパイルする。
  • C言語などのヘッダファイル依存関係を自動的に処理を行ってくれる。

使用してみた感じとして、makeよりはるかに単純だがJam特有の構文やルールを覚えるのに少してこずる。Jamのチュートリアル(PDF)のがあるので最初はこれを見るのがいいだろう。

C言語のファイルをmain.c sub1.c sub2.cのファイルをコンパイルしa.outのプログラムを作るときの簡単なJamfileの例は以下の様になる。

CC      = gcc ;
CCFLAGS = -Wall -Wextra ;
#HDRS = ../include ;

Main a.out : main.c sub1.c sub2.c ;