(sorry, that was supposed to be a reply all)

On Wed, Sep 18, 2019, 7:21 PM Jeff Smith <whydoubt@gmail.com> wrote:
On Wed, Sep 18, 2019 at 4:03 PM Alexandre Julliard <julliard@winehq.org> wrote:
>
> Jeff Smith <whydoubt@gmail.com> writes:
>
> > @@ -3773,6 +3773,20 @@ static void output_sources( struct makefile *make )
> >
> >      strarray_add( &make->phony_targets, "all" );
> >
> > +    output("ifeq ($(V),0)\n");
> > +    output(" QUIET          = @\n");
> > +    output(" QUIET_AR       = @echo '   ' AR $@;\n");
> > +    output(" QUIET_BISON    = @echo '   ' BISON $@;\n");
> > +    output(" QUIET_BUILD    = @echo '   ' BUILD $@;\n");
> > +    output(" QUIET_CC       = @echo '   ' CC $@;\n");
> > +    output(" QUIET_CCLD     = @echo '   ' CCLD $@;\n");
> > +    output(" QUIET_GEN      = @echo '   ' GEN $@;\n");
> > +    output(" QUIET_FLEX     = @echo '   ' FLEX $@;\n");
> > +    output(" QUIET_LN       = @echo '   ' LN $@;\n");
> > +    output(" QUIET_RANLIB   = @echo '   ' RANLIB $@;\n");
> > +    output(" QUIET_TEST     = @echo '   ' TEST $@;\n");
> > +    output("endif\n\n");
>
> We don't use if() in makefiles, for portability reasons.

What other implementations of make are supported that do not handle ifeq()?
Would guarding that block in C with an appropriate check make it acceptable?

Alternatively, is nested macro expansion an option?  i.e. XYZ=$(XYZ_$(V))