linux下makeツール使用シリーズ4

2084 ワード

一、静的モード
Makefileは、一連のツールを使用して、ターゲットおよび依存ファイルを省略できます.
::
    

ここでtargetsは一連のターゲットファイルを定義し、ワイルドカードを持つことができ、ターゲットファイルの集合である.target-patternはtargetsモード、ターゲットセットモードを示す.prereq-patternはターゲット依存モードを示す
target-patternが位置決め場合.o,ターゲットファイルの集合はすべて.o末尾のファイル;prereq-patternが位置する場合.c,target-patternによって形成するターゲットを二次定義し,その方法はターゲットモードにおける"%"を取り,それを加算.cの終わり.
のように
objects=a.o b.o
all:$(objects)
$(objects) %.o:%.c
    gcc -c $(CFLAGS) $< -o $@

二、依存項目の自動生成
ほとんどのコンパイラでは、-Mオプションがサポートされています.つまり、ソースファイルに含まれるヘッダファイルを自動的に検索し、mainなどの依存関係を生成します.cにはdefsが含まれる.h,cc-M main.c,mainを出力.o:main.c defs.hGNU組織は、各ソースファイルの自動生成依存関係を1つのファイルに配置することを提案する.cのファイルはすべてnameを生成する.dのmakefileファイル.name.dファイルにnameが格納.cのファイル依存関係.それで書くことができます.c和.dファイル依存関係は、マスターMakefileに含めて、各ファイルの依存関係を自動化して生成することができる.
後に詳細を補足します.
%.d:%.c
 @set -e rm -f $@\
 $(CC) -M $(CFLAGS) $< > $@.$$$$ \
 sed 's,\($*\)\.o[ :]*,\1.o $@ ,g' < $@.$$$$ > $@\
 rm -f $@.$$$$

$$$$はランダム番号を表します