automake-patches
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]