This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Re: automake 1.8.3: Tru64: fix for depcomp
- From: Nicolas Joly <njoly at pasteur dot fr>
- To: Alexandre Duret-Lutz <adl at src dot lip6 dot fr>
- Cc: Nicolas Joly <njoly at pasteur dot fr>, automake-patches at gnu dot org,"Burgers A.R." <burgers at ecn dot nl>, automake at gnu dot org
- Date: Thu, 29 Apr 2004 14:55:41 +0200
- Subject: Re: automake 1.8.3: Tru64: fix for depcomp
- Organization: Pasteur Institute, Paris.
- References: <40691F7D.6050208@ecn.nl> <2004-04-24-11-21-00+19152+adl@gnu.org>
On Sat, Apr 24, 2004 at 11:20:59AM +0200, Alexandre Duret-Lutz wrote:
> >>> "Burgers" == Burgers A R <burgers@ecn.nl> writes:
>
> Burgers> In order to get the dependencies for a LTLIBRARY right for Tru64's
> Burgers> native cc C-compiler, I had to apply the following patch to
> Burgers> automake's depcomp script. cc -MD outputs the dependencies in the
> Burgers> .o.d file, not in the .lo.d file.
>
> Burgers> I am using automake 1.8.3, autoconf 2.59,
> Burgers> libtool (ltmain.sh (GNU libtool) 1.5 (1.1220 2003/04/05 19:32:58))
>
> Thanks, I'm installing the following patch on HEAD and
> branch-1-8. It would be nice to know the difference between
> your setup and Nicolas's.
>
> 2004-04-24 Alexandre Duret-Lutz <adl@gnu.org>
>
> * lib/depcomp (tru64) [libtool]: Nicolas Joly reported on
> 2002-06-12 that dependencies were output in $dir.libs/$base.lo.d.
> Teun Burgers reported on 2004-03-30 they were in $dir.libs/$base.o.d.
> Try both.
I just made some testing with one of my projects with automake 1.8.4 /
libtool 1.5.6, and noticed some remaining problems about libtool and
Tru64 dependency mode.
source='sequence.c' object='sequence.lo' libtool=yes depfile='.deps/sequence.Plo' tmpdepfile='.deps/sequence.TPlo' depmode=tru64 /bin/ksh ../depcomp /bin/ksh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I. -g -c -o sequence.lo sequence.c
mkdir .libs
cc -DHAVE_CONFIG_H -I. -I. -I. -g -c -MD sequence.c -DPIC -o .libs/sequence.o
cc -DHAVE_CONFIG_H -I. -I. -I. -g -c -MD sequence.c -o sequence.o >/dev/null 2>&1
With libtool 1.5 and Tru64 C compiler, 2 separate objects are now
generated. And, as a side effect, two separate `.d' dependencies files
are made : `sequence.o.d' and `.libs/sequence.o.d'.
Actually, the second one is processed to make the final
`.deps/sequence.Plo' file. But the first one remains unused, and seems
forgotten here ... This breaks `gmake distcheck' target, which
complains about `files left in build directory after distclean'.
I that case, shouldn't it be better to use for tmpdepfile2 :
"$dir$base.o.d" instead of "$dir.libs/$base.o.d"
NB: "$dir.libs/$base.o.d" are automatically cleaned with `make
distclean', with the `.libs' directory removal.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.