On Fri, Apr 14, 2023 at 5:38 AM Gisle Vanem <gva...@yahoo.no> wrote:
> But with 'MAKEFLAGS += --warn-undefined-variables', I get a
> bunch of warnings:
>    'reference to undefined variable '\''
>
> How can I avoid that?

There are various techniques.

example 1, define the variable
\:=
define trace_h
   #define G_TRACE(level, fmt, ...)                  $\\
           do {                                      $\\
             if (_g_trace_level() >= level) {        $\\
                _g_trace_color (TRACE_COLOUR_START); $\\
   # ....
endef
g_trace.h:; $(file > $@,$(trace_h))


example 2, introduce a space after the backslash

space:= #
define trace_h
   #define G_TRACE(level, fmt, ...)                  \$(space)
           do {                                      \$(space)
             if (_g_trace_level() >= level) {        \$(space)
                _g_trace_color (TRACE_COLOUR_START); \$(space)
   # ....
endef
g_trace.h:; $(file > $@,$(trace_h))

example 3, place your code inside the recipe

g_trace.h:
        @echo 'G_TRACE(level, fmt, ...)                  \
           do {                                      \
             if (_g_trace_level() >= level) {        \
                _g_trace_color (TRACE_COLOUR_START); \
   # ....' > $@

regards, Dmitry

Reply via email to