Wackonet Mailbag Default account:
I've finally gotten round to testing this with make 3.80 on a recent
version of Cygwin, and the same problem persists, so whatever changed
from make 3.79.1 to 3.80 had no effect.
Ok, I guess the change might have been only for MinGW.
One theory I've come up with is that the line:
$(foreach file, $(filter-out existing_dirs, $(INSTALL_DIRS)), \
only works for shortened DOS filenames if backslashes are being used.
The attached makefile works with slashes under MSYS with Make 3.79.1. It
doesn't work with backslashes at all since I've used the "$(strip \)" trick,
but if you replace that with "\\" it will output the following error when
run a second time: "cannot create directory `c:\\progra~1\\foo': File
exists". I think Cygwin behaves like MSYS?
So I'm wondering if I should make a patch where if UNIX_TOOLS=1 and
$(INSTALL_DIRS) contains shortened DOS paths, it converts the directories
in $(INSTALL_DIRS) to backslashes and then after the filtering converts
$(INSTALL_DIRS) back to forward-slashes? Would this be overkill?
Unless my test makefile is flawed, it wouldn't help. :(