0
SUBDIRS = foo bar baz

.PHONY: dirs $(SUBDIRS)

dirs: $(SUBDIRS)

$(SUBDIRS):

@echo $@

@ls $@

このメイクファイルを理解するのを手伝ってくれる人はいますか? 可能であれば、各ステートメントを説明してください (なぜそれが必要なのか、目的は何ですか? など)。

そして、このメイクファイルはどのように機能するのでしょうか?

4

1 に答える 1

0

フォーマットが間違っているので、以前はどうだったかを推測することしかできません...まあ、そうです:

最初の行は、リスト「foo bar baz」を SUBDIRS という名前の変数に割り当てます

2行目は、指定されたすべてのターゲットを「音声」にする特別なコマンドです。「make dirs」または「make foo」を呼び出すことができ、その名前のターゲットを見つけて実行しますが、この名前の実際のファイルではありません(通常のように非偽のターゲット)

3 つ目 - SUBDIRS 変数の値に依存する「dirs」という名前のターゲットを作成します。スペース区切りのリスト。このターゲットには実際のアクションはありません

4 行目は、SUBRIDS 変数のコンテンツのルールを作成します。依存関係はありません。残りのテキストは、このターゲットを「作成」するために実行する必要があるアクションです (したがって、あなたの場合、「作成」を呼び出すだけで、「作成ディレクトリ」が呼び出されます (最初のターゲットであるため)。 foo、bar、baz - これらのターゲットが呼び出されます。これらの各ターゲットを実行するために、make は echo と ls を呼び出します - 最終的にこれら 3 つのディレクトリ名とそれらのファイルのリストを取得します)

于 2012-10-25T08:50:10.410 に答える