Subject: bug#7884: Yacc and FreeBSD make in VPATH builds

From: Ralf Wildenhues <[email-masked]>
Date: Thu, 27 Jan 2011 19:34:14 +0100

* Stefano Lattarini wrote on Thu, Jan 27, 2011 at 11:54:50AM CET:
> On Tuesday 25 January 2011, Ralf Wildenhues wrote:
> > * Stefano Lattarini wrote on Tue, Jan 25, 2011 at 08:52:56PM CET:
> > > Hmm... maybe a variation of this might be a good solution after all, at
> > > least for FreeBSD make: the special `.BEGIN' target[1][2] might be used
> > > to copy Yacc-derived *.c and *.h files from $(srcdir) to $(builddir),
> > > unless they are already there.
> > 
> > How do you ensure that you don't overwrite newer such files in the build
> > tree?
> >
> Because we won't copy a file `foo.c' from srcdir to builddir if a `foo.c'
> already exists in builddir -- even if this `foo.c' in builddir is older
> than the one in the srcdir.  This should be good enough for the intended
> usages (VPATH builds with FreeBSD make), no?

Hmm.

I must admit that I still don't like this a lot.  BSD is free software,
we shouldn't have to put ugly workarounds in place for it, and this
workaround does have some ugliness to it.  Here's a radically different
idea: get them to fix/improve their make.

What do you think about this?
If you like it, would you be willing to write a PR and/or patch?
(I could otherwise try, but I'm not sure I have time for a patch.)

Thanks,
Ralf