在 Watcom 生成文件中扩展宏时,*$ 是什么意思?

What does *$ mean when expanding macros in a Watcom makefile?

我在遗留项目中有一组特殊的 makefile。它们由 Watcom make 处理,但它们似乎具有 NMAKE 文件格式。我经常遇到以下构造:

*$(_cmd_run)

$(_cmd_run) 只是一个宏扩展,但在这种情况下,美元符号前还有一个星号。我似乎找不到任何关于其目的的文档。 NMAKE 文档没有关于此语法的任何内容。我什至尝试查找 Open Watcom 源文件,但无济于事。

这个星号表示什么?

这是在 DOS 下处理 "long" 命令行的解决方法,因此可以安全地删除它。来自 WMAKE 的帮助:

Under DOS, an asterisk prefix (*) will cause Make to examine the length of the command argument. If it is too long (> 126 characters), it will take the command argument and stuff it into a temporary environment variable and then execute the command with "@env_var" as its argument.