Re: [PATCH] Fix Windows build with cmd.exe as shell

Bryce Harrington <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On Thu, Apr 23, 2015 at 09:33:00PM +0200, Simon Richter wrote:
> On 23.04.2015 02:11, Bryce Harrington wrote:
> 
> >> cmd.exe has unsubtly different behaviour from POSIX sh in a lot of places.
> >> This determines whether the current default shell for make is cmd.exe, and
> >> avoids "mkdir -p", "rm" and quotes around the argument to echo in this
> >> case.
> 
> > What exactly is the breakage that this fixes?  IOW, why has the current
> > code worked up 'til now on windows?
> 
> It works if you have a POSIX compatible shell in your path, e.g. if you
> are using msys or cygwin.
> 
> I'm trying to minimize dependencies to make it easier to build on a
> freshly installed Windows system, so I can easily set up autobuilders.
> 
> http://ci.kicad-pcb.org/job/pixman-win32/lastSuccessfulBuild/console is
> the log from the last build, using this patch. The system only has Java
> (for Jenkins) and git (to check out cairo) installed, and builds a
> standalone GNU make.
> 
> >> +mkdir_p = if not exist $(subst /,\,$1) md $(subst /,\,$1)
> >> +echo = $(if $1,echo $1,echo.)
> >> +rm = del $(subst /,\,$1)
> 
> > If you use := instead of = for these command definitions, would it
> > eliminate the need for the calls in the rest of the patch?
> 
> No, the call is needed because I need to process the arguments (md and
> del do not handle forward slashes and echo needs a dot to print a
> newline instead of "@ECHO is off".

Well, in any case, the hacky looking echo statements that the call
syntax creates makes the patch kind of a non-starter for me.  The goal
sounds noble enough though, so I'd consider another patch that was less
invasive.

> > Also, the makefile style seems to be to use uppercase letters when
> > using variables rather than system commands, so you should be specifying
> > MKDIR_P, ECHO, and RM.
> 
> Yes, however these are not commands per se, but rather "functions"
> within make.
> 
>    Simon
> 

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> 
> iQEcBAEBAgAGBQJVOUjtAAoJEH69OHuwmQgRSvoH/1onwHhT4ag8naYTyBoxHJwr
> mDpmC+Q4bW6hoJsVubg/jyf6/sLtTwvNnYVP8OvNn0Z5x4n3OntPCHEdwRgCEIIW
> 7LVGDEl6kpwwa1cxOshZVkiPp59grPBFtdHDdRT1b7xLOErViphv4MLd9qBzMqEn
> U2sD8Pkpmiu1yYjcdaqQa3Ntc8x2XwpK+bYHFdMg98lIxJrVAqxKLOe4bdCIjfBa
> VL2S5i3Di3nIMDRwovAfChyUEs4dcRWzTQx2FUIgdO+BtX54IdzMIjZj41GE4S6h
> u0oePzqul/mwBpjp0UYt451vR3GizhA4ZIv7NHgIEwpeZPc9AZB5g6sawumrmxU=
> =e+Ir
> -----END PGP SIGNATURE-----

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.