次のようにコマンドラインに指定することで,マクロCCの値を強制的に書き換えることができる
(マクロCCを書き換えることで使用するCコンパイラを変更することを意図している).
$ make CC=gcc
プログラム開発中に,テスト目的である変数の値を表示したいというような場合がある.
下の例では開発中はTESTというマクロを定義して
関数fact()の実引数としてどんな値がわたってくるのか
ながめてみようとしている.
#include <stdio.h>
int fact(int n)
{
#if defined(TEST)
    printf("fact: %d\n", n);
#endif
    return n > 1 ? n * fact(n - 1) : 1;
}
int main(void)
{
    int i;
    for (i = 0; i < 6; ++i)
      printf("%d\n", fact(i));
    return 0;
}
コマンドラインから引数“CFLAGS=-DTEST”を与えてmakeすると次のような結果になる.
$ make CFLAGS=-DTEST gcc -DTEST fact.c -o fact
※環境によっては次のようなMakefileが必要になるかも.
通常は,これと同等の暗黙ルールが既定義になっているはずなので,
たいていの場合Makefileは不要で,
Makefileを作らずに上記のコマンドを実行するだけでよいはず.
| Makefile | 
|---|
| 
.c:
        $(CC) $(CFLAGS) -o $@ $<
 | 
ソースファイル ダウンロード