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
