我正在使用Visual Studio 2005 nmake,我有一个像这样的测试makefile:
sometarget: -mkdir c:\testdir
我想始终创建目录,而不必指定'sometarget'.例如,我可以这样做:
!if [if not exist c:\testdir\$(null) mkdir c:\testdir] !endif
但这需要两行,我真的只想做"-mkdir c:\ testdir".如果我只用"-mkdir c:\ testdir"替换它我从nmake得到一个错误 - "致命错误U1034:语法错误:分隔符丢失".
我怎么能总是执行mkdir,而不是搞乱!if []的东西?
我认为这会奏效:
-@ if NOT EXIST "dir" mkdir "dir"
让总是想要根据目标做事.它不是一般的脚本工具.它查看目标并检查它们是否存在.如果目标不存在,则执行该目标的命令.
通常的方法是创建一个永远不会由make脚本生成的虚拟目标,因此每次make运行时都必须执行相关命令.
或者,您可以将命令添加到批处理文件,然后调用您的make文件.