Make:访问参数标志

Make: access argument flags

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

make dbg
//outputs: my_exe-dbg

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

我想写:

make dbg -f 

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

make dbg -fr 

它将编译并替换所有内容(r 表示 "executable")。我将如何在 makefile 中检查标志及其原因?

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

是否有检测这些破折号标志的解决方法?

您可以调用 make(至少是 GNU make,不确定它的可移植性如何)作为

make -B dbg

这会禁用时间戳检查并始终构建所有内容。每个目标的解决方法可以改为

dbg-f: # dependencies only if referred to by $< below
    # command to build dbg

.PHONY: dbg-f

这样可以通过

强制编译
make dbg-f

make dbg

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