次のようにコマンドラインに指定することで,マクロ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 $@ $<
|
ソースファイル ダウンロード