On 26/06/2012 20:06, Dimitar Zhekov wrote:
MSYS does treat backslashes as escapes, and I think that is a worse problem than cmd.exe interpreting forward slashes as command options, as it can occur in more situations. I think we should use forward slashes throughout.
I expected something like that. OK, the "-b" version uses forward slashes only. It's stupid and less efficient - not that it matters on novadays machines. The command interpreters seem to tolerate forward slashes for an exact-match path.
I don't understand why you made these changes with a separate target for each data subdirectory. This is not clean enough IMO.
BTW you missed data/templates/files. Wouldn't using a single xcopy be more sensible to reduce bugs and maintenance?
Unfortunately I can't get your patch to apply against current Git, but I'm not sure why (see attached file for errors). Can you/someone test if it applies (maybe there's something weird happening on my Windows setup)?
The original patch had CR+LF line endings, the attached "-a" version uses LF. But we should try "-b" anyway.
The problem turns out not to be line endings, that was just git warning noise. The problem was something else, still don't know why.
I can now apply the -b version, but I had to add 'src/' to the second file in the diff - are you manually concatenating diffs? Wouldn't it be better to use 'git diff'?
Note that using a cmd-style shell with SHELL defined to a *nix style shell fails, no matter if makefile.win32 is patched or not. That's a problem of GNU make under Win~1 trying to be too smart, and ending up with things like "CreateProcess (copy, ...) error 2". :)
I don't get the last part above, but I think this is by design:
"The program used as the shell is taken from the variable SHELL. If this variable is not set in your makefile, the program /bin/sh is used as the shell. ... Unlike most variables, the variable SHELL is never set from the environment. This is because the SHELL environment variable is used to specify your personal choice of shell program for interactive use. It would be very bad for personal choices like this to affect the functioning of makefiles."
from http://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html#Ch...
Also, I think you /can/ join command lines with a trailing backslash (but your patch change is still better to have STLIBS anyway): http://www.gnu.org/software/make/manual/html_node/Splitting-Lines.html