automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: depcomp: support newer HP compilers


From: Ralf Wildenhues
Subject: Re: depcomp: support newer HP compilers
Date: Wed, 4 Jan 2006 00:23:44 +0100
User-agent: Mutt/1.5.9i

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  <address@hidden>,
            Ralf Wildenhues  <address@hidden>

        * 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.
       #





reply via email to

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