引数を Make に直接渡すのは簡単です。
現在のメイクファイルは で呼び出すことができ、make foo
コンパイルfoo.c
して生成されます。「foo」がどのルールの対象でもなくても、エラーは発生しません。(少なくとも、これは私が使用しているものであるGNU Make 3.81の場合です。)foo
foo.c => foo
コンパイラとフラグの選択を制御したい場合 (out
ルールのように)、それを行う方法は複数あります。最も簡単な方法は (厳密には最善というわけではありませんが)、makefile 内のいくつかの変数を変更することです。
CC = gcc
CFLAGS = -g -m32 -Wall -ansi
もう 1 つのオプションは、暗黙のルールを独自のパターン ルールでオーバーライドすることです。
%: %.c
gcc -g -m32 -Wall -ansi -o $@ $<
別のステップでビルドする場合foo.o
は、ルールを 2 つのルールに分割する必要があります。また、Make の暗黙のルールをキャンセルするレシピのないルールを挿入する必要があります。
%: %.o
gcc -g -m32 -Wall -o $@ $^
%.o: %.c
gcc -m32 -g -Wall -ansi -c -o $@ $<
%: %.c
基本をマスターしたら、さらに改良することができます。