我有一个遗留的 MS NMAKE Makefile 我需要修复一些错误。
我希望使用“内联文件”的 NMAKE 技巧来调试一些非常长的命令行:
dep:
cmd @<<tmpfilename
cmd_args..
<<
将线路更改为
dep:
echo cmd @<<tmpfilename
cmd_args..
<<
NMAKE 抱怨线路太长。
为了查看 NMAKE 实际执行的命令行,我可以应用任何其他技巧吗?
我有一个遗留的 MS NMAKE Makefile 我需要修复一些错误。
我希望使用“内联文件”的 NMAKE 技巧来调试一些非常长的命令行:
dep:
cmd @<<tmpfilename
cmd_args..
<<
将线路更改为
dep:
echo cmd @<<tmpfilename
cmd_args..
<<
NMAKE 抱怨线路太长。
为了查看 NMAKE 实际执行的命令行,我可以应用任何其他技巧吗?
为了保留保留命令行的临时文件,请KEEP
在 final 之后附加关键字<<
。例如
dep:
echo cmd @<<tmpfilename
cmd_args..
<<KEEP
在这种情况下,发出nmake dep
一个名为的文件tmpfilename
后将保留,并保存参数列表cmd_args
。
请参阅此MS 知识库文章中的示例 makefile 2 。这个和这个(警告:PDF)是对KEEP
andNOKEEP
关键字的解释,但我不确定它们是否是专门为 MS NMAKE 编写的。
编辑:以上链接在 2019/08 年被替换,因为它们都已失效。新链接指向似乎包含 OP 在此答案中所指内容的存档副本。
语法在 Makefile 中的内联文件中描述,特别是重用内联文件。
普通的 unix make 支持“make -n”来显示它将运行的命令,对于 nmake,它是“make /n”。但是,make 通常也会尝试变得聪明,并且在任何情况下都会首先运行更新依赖项的规则,即使是“-n”,所以你可以尝试
#dep:
my_test_rule:
cmd @<<tmpfilename
cmd_args..
<<
然后运行“nmake /n my_test_rule”进行调试。