关于Makefile的几个问题

时间:2012-08-08 02:29:03

标签: makefile

问题1 如果您定义步骤

  22 clean:
  23   rm $(OBJECTS)

如果有任何方法优雅地“什么都不做,如果没有什么可以删除”?

问题2 假设在处理行时没有找到文件的情况下再次使用warhing正常退出以下行:

  6 SOURCES = $(shell echo src/*.cpp)

问题3 如何在最终产品上执行最终的后期处理,例如mv $(PRODUCT) someDir?这条指令在哪里?

2 个答案:

答案 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