Hi Zack, * Zack Weinberg wrote on Tue, Jan 03, 2006 at 08:53:03PM CET: > On Tue, Jan 03, 2006 at 01:01:52PM +0100, Ralf Wildenhues wrote: > > > > > Is the leading `;' important? > > > > > > You mean the one immediately after the '{'? Yes, that has to be there, or > > > sed will give syntax errors. > > > > I cannot reproduce the syntax errors (on B.11.23);
> ... This may well work with whichever sed you've got on your B.11.23. > I see that NetBSD 2.0 sed, which is the only sed I can get at right > now, is fine with a similar construct. However, I assure you, > older sed implementations will barf if there is no semicolon > immediately after the open brace. (The brace is treated as a > command, and must have a semicolon to separate it from the next > command in the -e expression.) Please leave it in. Surely, updated patch below. Do you have any idea which system might expose this? None of the ones I have access to do, and it helps both for adding a note to the Autoconf doc portability section, and assessing whether we should check the autotools for more instances of this. Thanks, Ralf 2006-0?-?? Zack Weinberg <[EMAIL PROTECTED]>, Ralf Wildenhues <[EMAIL PROTECTED]> * lib/depcomp: Add 'ia64hp' dependency style. (tru64): Fix typo. Index: lib/depcomp =================================================================== RCS file: /cvs/automake/automake/lib/depcomp,v retrieving revision 1.55 diff -u -r1.55 depcomp --- lib/depcomp 9 Jul 2005 09:24:40 -0000 1.55 +++ lib/depcomp 3 Jan 2006 23:22:35 -0000 @@ -276,6 +276,46 @@ rm -f "$tmpdepfile" ;; +ia64hp) + # The "hp" stanza above does not work with HP's ia64 compilers, + # which have integrated preprocessors. The correct option to use + # with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -288,7 +328,7 @@ if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a - # static library. This mecanism is used in libtool 1.4 series to + # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. #