[Geany-devel] Remove MSYS dependency of Geany on Win~1

Nick Treleaven nick.treleaven at xxxxx
Tue Jun 26 20:21:57 UTC 2012


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#Choosing-the-Shell

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



More information about the Devel mailing list