macros[_T("CMD_NULL")] = _T("NUL");
Why???
Because for the rest of platforms CMD_NULL macro is defined as a file: /dev/null
See macrosmanager.cpp line 122:
macros[_T("CMD_NULL")] = _T("/dev/null");
Then it would be possible to use it for example in pre-build command:
$(CMD_CP) include.hw include.h > $(CMD_NULL)
CMD_NULL in its current state on windows platforms expands to invalid command:
cmd /c NUL
How about adding macro for $(CMD) = "cmd /c" on windows, "sh" otherwise?
For what purpose?
For purpose the macros are for: to parametrize things.
Przemek