例如,如果我有一个编译时使用的dbg可执行文件:
make dbg
//outputs: my_exe-dbg
然后我对makefile进行编辑,然后我想重新运行make dbg
。但是,my_exe-dbg
的存在会阻止make做任何事情。
我想写:
make dbg -f
编译并替换可执行文件。如果我写:
make dbg -fr
它将编译并替换所有内容(r
表示“可执行”)。我将如何在makefile中检查标志并对其进行推理?
是否存在用于捕获或定义要查找的标志的变量或内置机制?
是否有解决这些破折号的方法?
答案 0 :(得分:1)
您可以使用以下方式调用make(至少是GNU make,不确定它的可移植性)
new_and_updated
禁用时间戳记检查并始终构建所有内容。每个目标的替代方法可能是
make -B dbg
这样,您可以通过以下方式强制编译
dbg-f: # dependencies only if referred to by $< below
# command to build dbg
.PHONY: dbg-f
同时
make dbg-f
像以前一样工作,并检查依赖项及其时间戳。