[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with yacc rebuild rules
From: |
Bruno Haible |
Subject: |
Re: Problem with yacc rebuild rules |
Date: |
Wed, 26 Dec 2007 17:08:58 +0100 |
User-agent: |
KMail/1.5.4 |
Larry Jones wrote:
> I'm having a problem building the Gnulib getdate module as part of CVS
> when building in a directory other than the source directory:
>
> test -f getdate.c || /bin/sh
> /u/scjones/cvs-nightly/build-aux/ylwrap /u/scjones/cvs-nightly/lib/getdate.y
> y.tab.c getdate.c y.tab.h getdate.h y.output getdate.output -- bison -y
> /u/scjones/cvs-nightly/build-aux/ylwrap[111]: bison: not found.
> *** Error exit code 1
>
> The problem is that getdate.c does exist, but over in $(srcdir), not in
> the current directory. I'm not sure whether the problem is in
> automake's yacc.am, Gnulib's use of it, CVS's use of the Gnulib module,
> or some combination. Anyone care to point fingers? :-)
'care' or 'dare' to point a finger? :-)
I tried to reproduce your problem like this:
1) $ ./gnulib-tool --create-testdir --dir=/dev/shm/testdir1 getdate
2) added AM_MAINTAINER_MODE to configure.ac (since you're apparently
using automake-1.10, and its yacc.am shows that the "test -f" comes
in only when AM_MAINTAINER_MODE is used),
3) build in a separate directory with GNU make.
What I see is:
- When getdate.c is newer than getdate.y, "make getdate.c" does nothing.
- When getdate.y is newer than getdate.c, "make getdate.c" shows a command
like this:
test -f ../../testdir1/gllib/getdate.c || /bin/sh ...
So my finger points back to you:
* Are you sure that you are using GNU make? VPATH builds require GNU make.
* The error message that you got indicates that the command 'bison' was
not found. When building sources from a git or CVS repository (as opposed
to a distributed tarball), you must have more than the usual tools
(sh, [g]awk, tr, [g]cc, etc.) installed. Depending on the gnulib modules
that you use, you may also need bison, gperf, etc.
Bruno