Make:访问参数标志

时间:2018-06-22 14:28:45

标签: makefile gnu-make

例如,如果我有一个编译时使用的dbg可执行文件:

make dbg
//outputs: my_exe-dbg

然后我对makefile进行编辑,然后我想重新运行make dbg。但是,my_exe-dbg的存在会阻止make做任何事情。

我想写:

make dbg -f 

编译并替换可执行文件。如果我写:

make dbg -fr 

它将编译并替换所有内容(r表示“可执行”)。我将如何在makefile中检查标志并对其进行推理?

是否存在用于捕获或定义要查找的标志的变量或内置机制?

是否有解决这些破折号的方法?

1 个答案:

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

像以前一样工作,并检查依赖项及其时间戳。