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."