Hi, I had problems running a configure script under Cygwin, because of extra CR-characters (i.e. ASCII \015, "carriage return") being added to the shell code of the macros gathered into aclocal.m4 by Automake's ``aclocal''. This lead to problems when running ``configure'' due to what looks like a bug in the Cygwin bash port (using the latest release): lines ending with '\' (i.e. "continuation" lines) plus CRLF will not be parsed correctly -- bash just ends the command, as if the '\' character wasn't there. The attached patch will let Automake circumvent this bug by writing aclocal.m4 in binary mode (i.e. with just LF instead of CRLF under MSWindows). I believe this to be the correct behavior anyway, Cygwin bash bug or not. (There might be a better way than using ``binmode'' to instruct Perl's ``print'' function to write LF instead of CRLF, but I couldn't find one. I'm no Perl guru. :^}) BTW, I've also reported the bash bug to the cygwin mailinglist. Regards, Morten
Index: ChangeLog =================================================================== RCS file: /cvs/automake/automake/ChangeLog,v retrieving revision 1.891 diff -u -r1.891 ChangeLog --- ChangeLog 2000/10/06 22:49:14 1.891 +++ ChangeLog 2000/10/09 10:59:37 @@ -1,3 +1,8 @@ +2000-10-09 Morten Eriksen <[EMAIL PROTECTED]> + + * aclocal.in (write_aclocal): Don't write aclocal.m4 with + CRLFs. This circumvents a bug in Cygwin bash. + 2000-10-06 Alexandre Duret-Lutz <[EMAIL PROTECTED]> * aclocal.in (add_file): Strip comments while scanning for Index: aclocal.in =================================================================== RCS file: /cvs/automake/automake/aclocal.in,v retrieving revision 1.46 diff -u -r1.46 aclocal.in --- aclocal.in 2000/10/06 22:49:14 1.46 +++ aclocal.in 2000/10/09 10:59:38 @@ -429,6 +429,13 @@ open (ACLOCAL, "> " . $output_file) || die "aclocal: couldn't open \`$output_file' for writing: $!\n"; + + # In case we're running under MSWindows, don't write with CRLF. + # (This circumvents a bug in at least Cygwin bash where the shell + # parsing fails on lines ending with the continuation character '\' + # and CRLF.) + binmode ACLOCAL; + print ACLOCAL "dnl $output_file generated automatically by aclocal $VERSION\n"; print ACLOCAL "\ dnl Copyright (C) 1994, 1995-9, 2000 Free Software Foundation, Inc.