3

ルールのすべての依存関係を取得するための GNU Makefiles のトリックはありますか?

例:

rule1:  dep1_1 dep1_2 dep1_3

rule2:  dep2_1 dep2_2 rule1

dump_deps:
    echo "Dependencies of rule1: $(call do_the_trick, $(rule1))"
    echo "Dependencies of rule2: $(call do_the_trick, $(rule2))"

install:   $(prefix install-,$(call do_the_trick, $(rule1)))

私は電話して見ることができるようにしたいmake dump_deps:

dep1_1 dep1_2 dep1_3
dep2_1 dep2_2 dep1_1 dep1_2 dep1_3

または、などの依存関係を自動的にインストールしmake installます。

出来ますか?


編集:

例を変更して、依存関係リストを自分でハードコーディングする必要がなく、自動化が必要であることをよりよく示すようにしました。

4

3 に答える 3

1

これにより、すべての依存関係がリストされます。

DEPEND = dep1 dep2 dep3

.PHONY: $(DEPEND)

dump_deps: $(DEPEND)
     @printf "%s\n" $^

必要に応じて、.PHONY ターゲットの行を削除する必要があります。これは、例のために使用されます。また、行頭とprintfの間にタブがあることに注意してください。

于 2012-09-28T13:55:35.657 に答える
1

make ユーティリティで利用可能な組み込み変数 $^ を使用します。これは、ルールのすべての依存関係を表します。

また、コードを調べて、目的に合わせてrule1を変数/マクロ形式にしました......

rule1 := dep1 dep2 dep3
于 2013-03-24T01:25:00.833 に答える