[gnu.utils.bug] gnumake problem

crudolph@wilbur.unix.ETA.COM (Chuck Rudolph) (03/31/89)

I am having difficulty with trying to specify a VPATH macro.  It looks like
it is being ignored.  I have tried using versions 3.27 and 3.44 on Apollo's
running SR9.7 and on Sun 3's running SunOS 4.  The problem is very easy to
duplicate:

cd make-3.44                        # Go to your GNU Make directory.
make make                           # Make sure that GNU Make is up to date.
mkdir bin                           # Make a directory to do a make in.
cd bin                              # Go to it.
../make -f ../Makefile VPATH=..     # Make make with the source from ..

This last command works if I use one of the Apollo or Sun supplied make's.
Could someone please tell me what I'm doing wrong.

---------------------------------------------------------------
Chuck Rudolph                   Internet: crudolph@unix.eta.com
ETA Systems, Inc., ETC10C       UUCP: {amdahl,rutgers}!bungia!eta!unix@crudolph
1450 Energy Park Drive          Voice: (612) 642-8444
St. Paul, MN  55108
-- 

---------------------------------------------------------------
Chuck Rudolph                   Internet: crudolph@unix.eta.com
ETA Systems, Inc., ETC10C       UUCP: {amdahl,rutgers}!bungia!eta!unix@crudolph
1450 Energy Park Drive          Voice: (612) 642-8444
St. Paul, MN  55108

grady@fxgrp.fx.com (Steven Grady) (12/01/89)

make 3.57 (and earlier versions, I believe) does not handle intermediate
files correctly:

	% touch foo.y
	% touch foo.o
	% gnumake -n foo.o
	cc    -c foo.c -o foo.o

(There's no makefile -- the default rules demonstrate the problem.)

I think the problem is that since foo.o is newer than foo.y, make doesn't
see any reason to invoke a production on foo.y.  But, since foo.c
doesn't exist, it assumes the worst -- that foo.o needs to be remade
from foo.c, so it invokes the appropriate production.  This is just
a guess, of course.  

This is a pretty severe problem.

	Steven
	...!ucbvax!grady
	grady@postgres.berkeley.edu

"You try any preversions in there, and I'll blow your head off."