我在遗留项目中有一套特殊的makefile。它们由Watcom make处理,但它们似乎具有NMAKE文件格式。我经常遇到以下构造:
*$(_cmd_run)
$(_cmd_run)
只是一个宏观扩张,但在这种情况下,在美元符号之前还有一个星号。我似乎无法找到任何关于其目的的文件。 NMAKE文档没有关于此语法的任何内容。我甚至试图查找Open Watcom源文件,但无济于事。
这个星号表示什么?
这是在DOS下处理“长”命令行的一种解决方法,因此可以安全地删除它。从WMAKE的帮助:
在DOS下,星号前缀(*)将导致Make检查命令参数的长度。如果它太长(> 126个字符),它将获取命令参数并将其填充到临时环境变量中,然后以“@env_var”作为其参数执行命令。