[Top][All Lists]
[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.
#
Re: depcomp: support newer HP compilers, Alexandre Duret-Lutz, 2006/01/03