GNU bug report logs - #7884
Yacc and FreeBSD make in VPATH builds

Previous Next

Package: automake;

Reported by: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Date: Fri, 21 Jan 2011 21:21:01 UTC

Severity: normal

Tags: confirmed, help

Full log


View this message in rfc822 format

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Ralf Wildenhues <Ralf.Wildenhues <at> gmx.de>
Cc: 7884 <at> debbugs.gnu.org
Subject: bug#7884: Yacc and FreeBSD make in VPATH builds
Date: Thu, 27 Jan 2011 11:54:50 +0100
[Message part 1 (text/plain, inline)]
On Tuesday 25 January 2011, Ralf Wildenhues wrote:
> * Stefano Lattarini wrote on Tue, Jan 25, 2011 at 08:52:56PM CET:
> > On Saturday 22 January 2011, Ralf Wildenhues wrote:
> > > 
> > > >  - Tell the developer to add proper AC_CONFIG_LINKS to configure in
> > > >    order to support VPATH builds with FreeBSD make (yuck^2, since
> > > >    that means keeping track of renamed files when object-specific
> > > >    flags are involved).
> > > >
> > 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?

> Please note that 'test' and 'ls' might not have the same time
> stamp reading granularity that 'make' might have.  Well, at least in
> general, this might be less of a problem on FreeBSD specifically.
>
I don't plan to do any by-hand timestamp checking.

> Anyway, the above sounds a lot like a hack with possible traps, I'm not
> sure I like going that way.
>
But the good thing about this hack is that it's (at least, should be)
triggered only with BSD make, for which VPATH builds involving Yacc
files are already broken.

> > Note that the 'distcleancheck' target would still fail with this change,
> > but that's more of an annoyance rather than a serious bug (like the one
> > under discussion is IMHO).  And we could try to fix that later.
> 
> Well, regressions are generally worse than bugs.
>
Yes, but this wouldn't be a regression, since currently the 'distcleancheck'
target is already broken in VPATH builds with FreeBSD make.

> Generally, whatever solution you would like to propose, I would suggest
> that you could first try to create in a simple Makefile the rules as you
> think automake should produce them;
>
Good advice; and in fact, I've played this way with the testcase
`yacc-dist-nobuild.test' before advancing my proposal, to avoid losing
my time and yours.  See attachement.  It works with GNU make, Heirloom
make, FreeBSD make and NetBSD make.

> then we have something to digest
> (and possibly throw away) without having to invest a lot of work in a
> proper automake implementation.  It is often possible to rule out
> strategies quickly at such an early stage.
>
I heartily agree.

> Thanks,
> Ralf
> 

Thanks,
  Stefano
[yacc-freebsd-make-vpath-experiment.test (application/x-shellscript, inline)]

This bug report was last modified 4 years and 210 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.