Makefileのアップグレード

655 ワード

前の記事では、cファイルに対応するのに十分な簡単なMakefileを書きましたが、より多くのインスタンスをコンパイルするときに拡張性が悪いことがわかりました.そこで本の対応するソースコードのMakefileの書き方を参考にして、小さなアップグレードをして、アップグレードしたMakefileはこのように成長しました:
#    ,      $(variable)   
ROOT=/usr/local/lib/apue.3e
CC=gcc
CFLAGS=-Wall
LIBAPUE=$(ROOT)/lib/libapue.a
INCLUDE=$(ROOT)/include
PROJS=myls mycp

all:$(PROJS)

#         ,              :
#1. Makefile      %  。 %  target          Makefile         。    ,         target。
#2. $@      ,        ,  %=myls, $@=myls
%: %.c $(INCLUDE)
    $(CC) [email protected] -I $(INCLUDE) $(LIBAPUE) -o $@

clean:
    rm -rf *.o myls *.out

注意しなければならないことを注釈に書いてあると、すぐにMakefileのデザインの牛が追い詰められているのを感じました.