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