Re: One more fix for ash-0.2 braindamage

2000-10-09 Thread Pavel Roskin

Hello!

> ChangeLog:
>   * m4/init.m4 (AM_INIT_AUTOMAKE): Don't rely on variable
>   assignments changing $? - it' broken in ash-0.2.
>   * m4/missing.m4 (AM_MISSING_HAS_RUN): Likewise.

I saw no objections, so I applied it. One of the buggiest shells should
now work better.

Regards,
Pavel Roskin





[PATCH] Dependency tracking for Microsoft Visual C/C++

2000-10-09 Thread Morten Eriksen

Hi,

this patch implements support for extracting dependency tracking
information by using the preprocessor mode of the Microsoft Visual
C/C++ compiler.

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 17:46:26
@@ -1,3 +1,8 @@
+2000-10-09  Morten Eriksen  <[EMAIL PROTECTED]>
+
+   * depcomp (msvisualcpp): New dependency tracking mode, this one
+   works with Microsoft Visual C++.
+
 2000-10-06  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>
 
* aclocal.in (add_file): Strip comments while scanning for
Index: depcomp
===
RCS file: /cvs/automake/automake/depcomp,v
retrieving revision 1.8
diff -u -r1.8 depcomp
--- depcomp 2000/08/20 15:58:45 1.8
+++ depcomp 2000/10/09 17:46:27
@@ -263,6 +272,44 @@
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
   sed < "$tmpdepfile" -e 's/^[^:]*: //' -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+case " $* " in
+*" --mode=compile "*)
+  for arg
+  do # cycle over the arguments
+case "$arg" in
+   "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+   esac
+   set fnord "$@" "$arg"
+   shift # fnord
+   shift # "$arg"
+  done
+  ;;
+esac
+"$@" -E |
+sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | 
+sort | uniq > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::   \1 \\:p' >> "$depfile"
+  echo "   " >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 



Re: [PATCH] Fix for CRLF problem

2000-10-09 Thread Morten Eriksen

Hi,

I found another problem with Automake under Cygwin. The Makefile.in
files are written with CRLF, which causes the grep and/or sed code
which extracts the list of dependency files in
AM_OUTPUT_DEPENDENCY_COMMANDS to fail.

Updated patch attached below.

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 14:43:56
@@ -1,3 +1,12 @@
+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.
+
+   * automake.in (generate_makefile): Don't write Makefile.in
+   files with CRLFs, as it causes problems for the dependency-file
+   extraction in AM_OUTPUT_DEPENDENCY_COMMANDS.
+
 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 14:43:57
@@ -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.
Index: automake.in
===
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.796
diff -u -r1.796 automake.in
--- automake.in 2000/09/15 20:09:55 1.796
+++ automake.in 2000/10/09 14:44:05
@@ -689,6 +689,11 @@
 }
 print "automake: creating ", $makefile, ".in\n" if $verbose;
 
+# In case we're running under MSWindows, don't write with CRLF
+# (as it causes problems for the dependency-file extraction in
+# AM_OUTPUT_DEPENDENCY_COMMANDS).
+binmode GM_FILE;
+
 print GM_FILE $output_vars;
 # We make sure that `all:' is the first target.
 print GM_FILE $output_all;



[PATCH] Fix for CRLF problem

2000-10-09 Thread Morten Eriksen

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.