7. Makefile - ターゲットの上書き

 
7.1 ターゲットを変えるとワーニングが出ちゃうのだ
7.2 ワーニングを出さないようにするには

7.1 ターゲットを変えるとワーニングが出ちゃうのだ

 プロジェクト全体の定義を書いているような Makefile があって、その名前を仮に all.mk として、サブプロジェクトの Makefile があるとします。  末尾に

include ディレクトリ(相対でも絶対でも可)/all.mk
 とか書いています。  で all.mk に全体のターゲットとして

TARGET : 全体のターゲット
 とか書いててサブプロジェクトにもサブプロジェクトのターゲットがあって Makefile に

TARGET : サブプロジェクトのターゲット
 書いてあると、make するときに

> make
../all.mk:111: 警告: ターゲット `foo' へのコマンドを置き換えます
Makefile:6: 警告: ターゲット `foo' への古いコマンドは無視されます

		~ 略 ~

 てなワーニングが出ちゃいます。  ターゲット名を間違えているときにはありがたいんですが、納得したうえで書いていると、困ったものなのです。

7.2 ワーニングを出さないようにするには

 前項のような状況の時には、all.mk のターゲットの方に

%TARGET : 全体のターゲット
 とターゲット名の先頭に「%」をつけてあげると、前項のようなワーニングは出なくなります。