環境:

  • OS : CentOS 7
  • make : GNU Make 3.82

トップの makefile は以下のようになっており、SUB1,SUB2,SUB3 のmakefile を呼び出すようになっていたとします。
SUB1,SUB2,SUB3 の makefile には C ソースをコンパイルするだけの単純なものとします。

TARGET_LIST=SUB1 SUB2 SUB3

all:
    @for d in $(TARGET_LIST); do make -C $$d; done

そこで質問があります。

  • (1) この状態で、SUB1 内でコンパイルエラーが発生した場合、SUB2,SUB3
    が実行されてしまいますが実行されるのが通常の動作なのでしょうか?(make -k した状態に見える)
  • (2) そもそも (1) の状態になることが異常で、なにかしら makefile に記載ミスがあるのでしょうか?
  • (3) makefile から makefile を呼び出した場合は、エラー発生時の停止条件はどうのような扱いとなるのでしょうか?(exit 1;?等の扱いを別途考慮し、makeifle を記載するべき?)

以上、よろしくお願いします。