问题1 如果您定义步骤
22 clean:
23 rm $(OBJECTS)
如果有任何方法优雅地“什么都不做,如果没有什么可以删除”?
问题2 假设在处理行时没有找到文件的情况下再次使用warhing正常退出以下行:
6 SOURCES = $(shell echo src/*.cpp)
问题3
如何在最终产品上执行最终的后期处理,例如mv $(PRODUCT) someDir
?这条指令在哪里?
答案 0 :(得分:1)
1)只需使用rm -f
,如果文件丢失,告诉rm
忽略它。
3)这可能只是实际构建产品的目标的最后一步,或者您可以创建一个名为install
的目标(例如),该目标取决于您的构建目标,然后包含此{{ 1}}命令。
答案 1 :(得分:1)
回答问题#2 :
SOURCES := $(or $(wildcard src/*.cpp), $(warning No source found in 'src'))
当没有匹配src/*.cpp
模式的文件时,这将发出警告。 SOURCES
变量仍为空。
请参阅GNU Make手册中的相应chapter。