これは私のメイクファイルです:
all: first second
second:
@echo "==Building second=="
first:
@echo "==Building first=="
という名前のディレクトリがある場合second
、同じ名前のルールはメイクファイルによって完全に無視されます。それがなければ、すべてが正常に進みます。
second
これは、フォルダーがその中の Makefile であるかどうかに関係なく発生することに注意してください。
プロジェクトを整理しているときに、この問題に取り組みました。一般的な Makefile を作成して、各ディレクトリで Makefile を呼び出すことを考えました。そのため、ルールがフォルダーと同じ名前を持つのは当然のことのように思えます。
解決策は簡単です: Makefile 内のルール名を変更します...しかし、この動作はかなり奇妙に思えます: これに関するアイデア/洞察、および別の可能な解決策はありますか?
Ubuntu 12.04.2 LTS の下で、Bash 4.2.25 内で GNU Make 3.81 を使用しています。