I apologize in advance if this cross-posting is inappropriate, but it seemed reasonable at the time...
The following makefile yields two different values for $^ when run twice in succession: # Example makefile vpath %.in /c/work/tmp/src vpath %.out /c/work/tmp/out default: stuff/foo.out # $^ %.out: %.in touch /c/work/tmp/out/$@ # end of makefile When run twice I get: 63 OSAKA:tmp$ make touch /c/work/tmp/out/stuff/foo.out # c/foo.out 64 OSAKA:tmp$ make # /c/work/tmp/out/stuff/foo.out As you can see, the first time (when the prerequisite "stuff/foo.out" doesn't exist) , $^ is resolved to "stuff/foo.out". But the second time, when stuff/foo.out already exists, it is resolved to "/c/work/tmp/out/stuff/foo.out". Is this behavior correct? Environment Specifics: This is being run on Windows XP with the latest cygwin installation. I've cc'd that list because there are a lot of sharp people there familiar with gnu internals. 65 OSAKA:tmp$ make --version GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for i686-pc-cygwin Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Report bugs to <[EMAIL PROTECTED]>. Thanks, -- Robert -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/