私のメイクファイルでは、「クリーン」ターゲットは、変数.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)