This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Changing resolution of $^ in make


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@gnu.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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]