2016-06-13 9 views
0

GNU Makefileでは、前提条件で*、または割り当て内で$(wildcard)を使用すると、シェル拡張を使用して一致するファイルが検索されます。偽のターゲットでのワイルドカードの一致

偽のターゲットに相当する方法はありますか?たとえば:

.PHONY: compile-1 compile-2 
compile-all: compile-* 

これはthis questionに似ているが、私は手動でAVAILABLE_MODELSのようにターゲットを一覧表示する必要がありますする必要はありません。

「いいえ、あなたがリストしなければなりません」というのは受け入れられる答えです。

+0

一般的に、すべてのターゲットを列挙したい場合があります。残念ながらこれは完全に自明ではありません。 http://stackoverflow.com/questions/4219255/how-do-you-get-the-list-of-targets-in-a-makefile – tripleee

答えて

1

あなたはそれらをあまり一覧表示する必要はありません。それは十分に違う場合は、その違い、 からそれらを計算することができます -

compiles := $(patsubst %,compile-%,1 2) 

PHONY: $(compiles) 

compile-all: $(compiles) 

compile-Nはあなたがべきではない、いくつかのコンパイルのための偽のターゲットである場合には、しかし、8.2 Functions for String Substitution and Analysis

を参照してください にそのための偽の目標を持っていますまったく。コンパイルでは実際のファイルが作成され、ターゲットは です。偽のファイルは必要ありません。

一方、compile-allは明らかにであり、は偽のターゲットであるべきです。

+0

'compile-N'は実ファイルではありません – OrangeDog

+0

@OrangeDog。私はそれを感謝しますが、これらのレシピのそれぞれが、偽のターゲットなしで日常的に作られる実際のファイルを作成すると疑われます。もちろん、ちょうど馬鹿。 –

関連する問題