[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Make compile wrapper eat win32 paths
From: |
Ralf Wildenhues |
Subject: |
Re: Make compile wrapper eat win32 paths |
Date: |
Sun, 1 Feb 2009 17:48:10 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hi Peter,
* Peter Rosin wrote on Sun, Feb 01, 2009 at 05:05:20PM CET:
> When the compile wrapper is given win32 paths (with colons and/or
> backslashes) it gets into trouble with both creating the lock
> directory and guessing the output file of the losing compiler.
Thanks for the report and patch.
> Here's a patch.
Ain't no bugfix going into the Automake tree without testsuite exposure,
if at all possible. So if you don't want to write a test yourself, then
please mention whether there is already a test failing for this system,
that is fixed by this change, or whether I'd need to write one. In the
latter case, please describe a test with your own words, rather than
with code.
Thank you,
Ralf
> --- a/lib/compile
> +++ b/lib/compile
> @@ -102,13 +102,13 @@ if test -z "$ofile" || test -z "$cfile"; then
> fi
>
> # Name of file we expect compiler to create.
> -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
> +cofile=`echo "$cfile" | sed -e 's|^.*/\\:||' -e 's/\.c$/.o/'`
Surely that should rather be something like this, no?
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
> # Create the lock directory.
> -# Note: use `[/.-]' here to ensure that we don't use the same name
> +# Note: use `[/\\:.-]' here to ensure that we don't use the same name
> # that we are using for the .o file. Also, base the name on the expected
> # object file name, since that is what matters with a parallel build.
> -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
> +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
> while true; do
> if mkdir "$lockdir" >/dev/null 2>&1; then
> break