These are two minor topics and I'm not asking for anything to be done about either for the upcoming release but I thought it couldn't hurt to mention them for discussion. First, the $(wildcard ...) function appears to rely on stat(), not lstat(), which means it considers a dangling symlink to not exist (test case below). This can be a pain in "make clean" scenarios and other corner cases. One could imagine fixing this in the code with (say) a $(wildcardl ...) function but it may be sufficient to address it in the documentation. I've been able to work around any problems this causes by use of $(shell ls ...).
Second: now that make has $(file ...) and can create files internally, not just via a recipe, there is the possibility of race conditions such as two make processes creating the same file and no internal way to uniqify them. Would it make sense to publish a new variable like $(.MAKEPID) for that use? I thought I had a test case for this but the problem turned out to be different: however it still seems like a theoretical possibility. A .MAKEPID variable could also be useful in strace etc scenarios.
Thanks,
David
Test case for wildcard:
$ ls -lrt
total 4
-rw-rw-r-- 1 xxxxxxxx users 120 Sep 10 09:05 Makefile
-rw-rw-r-- 1 xxxxxxxx users 0 Sep 10 09:06 target
lrwxrwxrwx 1 xxxxxxxx users 6 Sep 10 09:06 testlink -> target
$ cat Makefile
ifneq ($(wildcard testlink),)
$(warning testlink is present)
else
$(warning testlink does not exist)
endif
all:;@:
$ make
Makefile:2: testlink is present
$ rm target
$ make
Makefile:4: testlink does not exist