make・Makefile - ターゲットの上書き
- 1. ターゲットを変えるとワーニングが出ちゃうのだ
- 2. ワーニングを出さないようにするには
1. ターゲットを変えるとワーニングが出ちゃうのだ
プロジェクト全体の定義を書いているような Makefile があって、その名前を仮に all.mk として、サブプロジェクトの Makefile があるとします。
末尾に
include ディレクトリ(相対でも絶対でも可)/all.mk
とか書いています。
で all.mk に全体のターゲットとして
TARGET : 全体のターゲット
とか書いててサブプロジェクトにもサブプロジェクトのターゲットがあって Makefile に
TARGET : サブプロジェクトのターゲット
書いてあると、make するときに
> make
../all.mk:111: 警告: ターゲット `foo' へのコマンドを置き換えます
Makefile:6: 警告: ターゲット `foo' への古いコマンドは無視されます
~ 略 ~
てなワーニングが出ちゃいます。
ターゲット名を間違えているときにはありがたいんですが、納得したうえで書いていると、困ったものなのです。
2. ワーニングを出さないようにするには
前項のような状況の時には、all.mk のターゲットの方に
%TARGET : 全体のターゲット
とターゲット名の先頭に「%」をつけてあげると、前項のようなワーニングは出なくなります。
|
|