私のメイクファイルでは、「クリーン」ターゲットは、変数.c.bakで置換参照を使用してファイルを削除しています。SRC
rm -f $(SRC:.c=.c.bak)
これにより、 でSRC終わらない var内のすべてが削除され.cます。
変数に対して複数の置換を行うエレガントな方法はありますか? たとえば.cpp、.cpp.bak...
私のメイクファイルでは、「クリーン」ターゲットは、変数.c.bakで置換参照を使用してファイルを削除しています。SRC
rm -f $(SRC:.c=.c.bak)
これにより、 でSRC終わらない var内のすべてが削除され.cます。
変数に対して複数の置換を行うエレガントな方法はありますか? たとえば.cpp、.cpp.bak...
.cおよび.cppファイルだけでなく、すべてのソース ファイルのバックアップが表示される場合は、それに応じて置換を変更できます。
rm -f $(SRC:=.bak)
または、GNU Make を使用している場合は、そのテキスト処理関数を使用して$(SRC)、影響を与えるファイルを正確に指定できます。
rm -f $(addsuffix .bak, $(filter %.c %.cpp,$(SRC)))
$(SRC)より古典的なアプローチは、変数の値をどのように構築するかを調べることです。それがファイル名の明示的なリストである場合(IMHOである必要があります)、さまざまな種類のソースファイルの中間変数から構築できます。
SRC_C = foo.c bar.c
SRC_CXX = baz.cpp apple.cpp
SRC = Makefile banana.pl carrot.pl $(SRC_C) $(SRC_CXX)
これで、元の置換を正しくかつ移植可能に (つまり、GNU Make 機能を必要とせずに) 記述できます。
rm -f $(SRC_C:.c=.c.bak) $(SRC_CXX:.cpp=.cpp.bak)