Makefile には,
目的となるもの: 目的のため必要なファイル(複数記述可) [タブ] 実行することという形式で記述される.「実行すること」の手前には必ずタブが必要で ある.例えば,
all: server client server: server.o gcc -o server server.o client: client.o gcc -o client client.o server.o: server.c gcc -Wall -g -c server.c client.o: client.c gcc -Wall -g -c client.cこのような Makefile を用意しておけば,
% make
server.o: server.c common.h gcc -Wall -g -c server.c client.o: client.c common.h gcc -Wall -g -c client.cなどとすれば,common.hを編集した際に両方を再度コンパイルしてくれる.
さらに,このように書くこともできる.
CC = gcc all: server client server: server.o $(CC) -o $@ $^ client: client.o $(CC) -o $@ $^ server.o: server.c common.h client.o: client.c common.h .c.o: $(CC) -Wall -g -c $^ clean: rm -f server client server.o client.oこのとき,makeコマンドに引数cleanを渡して,
% make clean