SUBDIRS = foo bar baz
.PHONY: dirs $(SUBDIRS)
dirs: $(SUBDIRS)
$(SUBDIRS):
@echo $@
@ls $@
このメイクファイルを理解するのを手伝ってくれる人はいますか? 可能であれば、各ステートメントを説明してください (なぜそれが必要なのか、目的は何ですか? など)。
そして、このメイクファイルはどのように機能するのでしょうか?
フォーマットが間違っているので、以前はどうだったかを推測することしかできません...まあ、そうです:
最初の行は、リスト「foo bar baz」を SUBDIRS という名前の変数に割り当てます
2行目は、指定されたすべてのターゲットを「音声」にする特別なコマンドです。「make dirs」または「make foo」を呼び出すことができ、その名前のターゲットを見つけて実行しますが、この名前の実際のファイルではありません(通常のように非偽のターゲット)
3 つ目 - SUBDIRS 変数の値に依存する「dirs」という名前のターゲットを作成します。スペース区切りのリスト。このターゲットには実際のアクションはありません
4 行目は、SUBRIDS 変数のコンテンツのルールを作成します。依存関係はありません。残りのテキストは、このターゲットを「作成」するために実行する必要があるアクションです (したがって、あなたの場合、「作成」を呼び出すだけで、「作成ディレクトリ」が呼び出されます (最初のターゲットであるため)。 foo、bar、baz - これらのターゲットが呼び出されます。これらの各ターゲットを実行するために、make は echo と ls を呼び出します - 最終的にこれら 3 つのディレクトリ名とそれらのファイルのリストを取得します)