1
在我的makefile中,「乾淨」的目標是通過使用SRC
變量替換引用刪除.c.bak
文件:化妝:一個變量不止一次替代引用?
rm -f $(SRC:.c=.c.bak)
這將導致它刪除SRC
VAR不會在.c
結束一切。
有一種優雅的方式做一個變量多於一個替代?我想,例如,喜歡也試圖替代.cpp
與.cpp.bak
...
在我的makefile中,「乾淨」的目標是通過使用SRC
變量替換引用刪除.c.bak
文件:化妝:一個變量不止一次替代引用?
rm -f $(SRC:.c=.c.bak)
這將導致它刪除SRC
VAR不會在.c
結束一切。
有一種優雅的方式做一個變量多於一個替代?我想,例如,喜歡也試圖替代.cpp
與.cpp.bak
...
如果可能會出現所有的源文件,而不僅僅是.C和的.cpp文件的備份,你可以改變替代相應:
rm -f $(SRC:=.bak)
或者,如果您使用的GNU製作,你可以使用它的文字處理功能正是你想要影響到其在$(SRC)
文件列明:
rm -f $(addsuffix .bak, $(filter %.c %.cpp,$(SRC)))
一個更經典的方法是看你如何構建價值爲您$(SRC)
變量。如果是文件名的顯式列表(恕我直言,它應該是),那麼你可以從中間變量建立起來的各種不同的源文件:
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)