Martin Dorey wrote:
This seems to work:
martind@sirius:~/tmp/vanem-2023-04-14$ cat Makefile
g_trace.h: Makefile; $(file > $@,$(trace_h))
\ = \
define trace_h
#define G_TRACE(level, fmt, ...) $\\
do { $\\
if (_g_trace_level() >= level) { $\\
_g_trace_color (TRACE_COLOUR_START); $\\
# ....
endef
martind@sirius:~/tmp/vanem-2023-04-14$ make --warn-undefined-variables; cat
g_trace.h; rm g_trace.h
make: 'g_trace.h' is up to date.
#define G_TRACE(level, fmt, ...) \
do { \
if (_g_trace_level() >= level) { \
_g_trace_color (TRACE_COLOUR_START); \
# ....
Thanks!
But isn't make overzealous on this warning?
Shouldn't the '$\' be treated as an ESCape character?