[name].c という形式のファイルのセットがあり、そのうちのいくつかは関連する [name].h ファイルを #include します。[name].c または [name].h が変更された場合に [name].o を再構築する makefile ターゲットが必要です。私は試した:
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(SRCDIR)/%.h
#Implementation of target omitted
ただし、関連付けられた .h ファイルを持たない .c ファイルの場合、make は上記のルールに違反します。私は試した:
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(wildcard $(SRCDIR)/%.h)
#Implementation of target omitted
これはビルドされますが、.h ファイルを変更しても再ビルドはトリガーされません。このように % を使用できない理由はありますか?
注: makedeps.pl または makefile 生成を使用するソリューションを回避しようとしています (実際には .c または .h ファイルを使用していないため)。