Mail Archives: cygwin/2002/10/08/16:30:32
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 <bug-make AT gnu DOT org>.
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/
- Raw text -