automake
[Top][All Lists]
Advanced

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

Re: automake 1.8.3: Tru64: fix for depcomp


From: Alexandre Duret-Lutz
Subject: Re: automake 1.8.3: Tru64: fix for depcomp
Date: Mon, 31 May 2004 23:44:49 +0200
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux)

>>> "Nicolas" == Nicolas Joly <address@hidden> writes:

[...]

 Nicolas> I just made some testing with one of my projects with automake 1.8.4 /
 Nicolas> libtool 1.5.6, and noticed some remaining problems about libtool and
 Nicolas> Tru64 dependency mode.

 Nicolas> source='sequence.c' object='sequence.lo' libtool=yes
 Nicolas> depfile='.deps/sequence.Plo'
 Nicolas> tmpdepfile='.deps/sequence.TPlo' depmode=tru64
 Nicolas> /bin/ksh ../depcomp /bin/ksh ../libtool --mode=compile
 Nicolas> cc -DHAVE_CONFIG_H -I. -I. -I.  -g -c -o sequence.lo
 Nicolas> sequence.c

 Nicolas> mkdir .libs
 Nicolas> cc -DHAVE_CONFIG_H -I. -I. -I. -g -c -MD sequence.c  -DPIC -o 
.libs/sequence.o
 Nicolas> cc -DHAVE_CONFIG_H -I. -I. -I. -g -c -MD sequence.c -o sequence.o 
>/dev/null 2>&1

 Nicolas> With libtool 1.5 and Tru64 C compiler, 2 separate
 Nicolas> objects are now generated. And, as a side effect, two
 Nicolas> separate `.d' dependencies files are made :
 Nicolas> `sequence.o.d' and `.libs/sequence.o.d'.

 Nicolas> Actually, the second one is processed to make the
 Nicolas> final `.deps/sequence.Plo' file. But the first one
 Nicolas> remains unused, and seems forgotten here ... This
 Nicolas> breaks `gmake distcheck' target, which complains about
 Nicolas> `files left in build directory after distclean'.

 Nicolas> I that case, shouldn't it be better to use for tmpdepfile2 :

 Nicolas> "$dir$base.o.d"       instead of      "$dir.libs/$base.o.d"

 Nicolas> NB: "$dir.libs/$base.o.d" are automatically cleaned
 Nicolas> with `make distclean', with the `.libs' directory
 Nicolas> removal.

Thanks for the testing, and sorry it took me so long to answer.
I missed the mail.

I'm checking this in.

2004-05-31  Alexandre Duret-Lutz  <address@hidden>

        * lib/depcomp (tru64) [libtool]: Use $dir$base.o.d instead
        of $dir.libs/$base.o.d.  Libtool 1.5 causes both to be output,
        and we will clean the second automatically during distclean.
        Using the latter and leaving the former as we did before cause
        "files left in build directory" failures during distcheck.
        Suggested by Nicolas Joly.

Index: lib/depcomp
===================================================================
RCS file: /cvs/automake/automake/lib/depcomp,v
retrieving revision 1.50
diff -u -r1.50 depcomp
--- lib/depcomp 25 Apr 2004 11:21:03 -0000      1.50
+++ lib/depcomp 31 May 2004 21:43:08 -0000
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2004-04-25.14
+scriptversion=2004-05-31.23
 
 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
 
@@ -288,9 +288,12 @@
 
    if test "$libtool" = yes; then
       # Dependencies are output in .lo.d with libtool 1.4.
-      # They are output in .o.d with libtool 1.5.
+      # With libtool 1.5 they are output both in $dir.libs/$base.o.d
+      # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
+      # latter, because the former will be cleaned when $dir.libs is
+      # erased.
       tmpdepfile1="$dir.libs/$base.lo.d"
-      tmpdepfile2="$dir.libs/$base.o.d"
+      tmpdepfile2="$dir$base.o.d"
       tmpdepfile3="$dir.libs/$base.d"
       "$@" -Wc,-MD
    else

-- 
Alexandre Duret-Lutz





reply via email to

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