我有一个传统的MS NMAKE Makefile我需要修复一些错误。
我希望调试的一些非常长的命令行正在使用"inline files"的NMAKE技巧执行:
dep:
cmd @<<tmpfilename
cmd_args..
<<
将线路更改为
时dep:
echo cmd @<<tmpfilename
cmd_args..
<<
NMAKE抱怨说这条线太长了。
为了查看NMAKE实际执行的命令行,还有其他技巧吗?
答案 0 :(得分:3)
为了使保留命令行的临时文件在最终KEEP
之后附加<<
关键字。例如
dep:
echo cmd @<<tmpfilename
cmd_args..
<<KEEP
在这种情况下,在发出nmake dep
后,将保留名为tmpfilename
的文件,并保留参数列表cmd_args
。
请参阅此MS kd article中的示例makefile 2。 This和this (warning:PDF)是KEEP
和NOKEEP
关键字的解释,但我不确定它们是否专门针对MS NMAKE编写。
答案 1 :(得分:1)
普通的unix make支持“make -n”来显示它将运行的命令,因为nmake是“make / n”。但是,make通常也会尝试变聪明,并且会在任何情况下运行更新依赖项的规则,即使对于“-n”也是如此,因此您可以尝试
#dep:
my_test_rule:
cmd @<<tmpfilename
cmd_args..
<<
然后运行“nmake / n my_test_rule”进行调试。