automake
[Top][All Lists]
Advanced

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

Re: depcomp on system headers


From: David Everly
Subject: Re: depcomp on system headers
Date: Tue, 8 Aug 2006 14:23:04 -0600

Here I try to answer all the questions.  Please let me know if I missed any.

On 8/8/06, Ralf Wildenhues <address@hidden> wrote:
* David Everly wrote on Tue, Aug 08, 2006 at 12:56:12AM CEST:
>
> I think my problem happens because what our vendor does is #include
> <rw/numbrw.cc> inside of rw/numbrw

Yes, I see that too with the compiler version I'm looking at.

For me, the source file
  #include <locale>
  int main() { return 0; }

causes absolute file name like
  /opt/aCC/include_std/rw/numbrw:
  /opt/aCC/include_std/rw/numbrw.cc:

I have been plagued by my own inaccuracies here.  I'm including the
file generated by the output below from compiling ne.cxx to avoid
repeating my mistakes.

in .deps/foo.Po, not relative ones like you report.  Please output the
exact compile command that is used for this object.  Mine looks like:

source='../foo.cc' object='foo.o' libtool=no \
DEPDIR=.deps depmode=hp2 /usr/bin/posix/sh ../depcomp \
aCC -DPACKAGE_NAME=\"a\" -DPACKAGE_TARNAME=\"a\" -DPACKAGE_VERSION=\"1\"
-DPACKAGE_STRING=\"a\ 1\" -DPACKAGE_BUGREPORT=\"b\" -DPACKAGE=\"a\"
-DVERSION=\"1\" -I. -I..     -g -c -o foo.o ../foo.cc

source='tl1_am/src/ne.cxx' object='tl1_am/src/ne_sim-ne.o' libtool=no \
DEPDIR=.deps depmode=hp2 /bin/sh ./depcomp \
aCC +DD64 -Wl,+k -DHAVE_CONFIG_H -I. -I. -I.  -D_THREAD_SAFE
-DTL1overOSI -D_POSIX_C_SOURCE=199506L -I./tl1_am/src
-I/usr/opt/temip/CMA/include  -mt +DD64 +z -AA -g -c -o
tl1_am/src/ne_sim-ne.o `test -f 'tl1_am/src/ne.cxx' || echo
'./'`tl1_am/src/ne.cxx

(this is with CVS Automake as of some weeks ago; which versions of
Autoconf and Automake do you use BTW?

autoconf 2.59 and
automake 1.9.6 with depcomp 2006-07-09.11

hp2 was not in 1.9.6 yet, and
+Maked was not used there anywhere, please also print the scriptversion
of depcomp).

Please also show the output of your command that corresponds to above,
with -x added after the shell in use (/usr/bin/posix/sh in the case
above, but please use whatever configure chose for you).

 source='tl1_am/src/ne.cxx' object='tl1_am/src/ne_sim-ne.o'
libtool=no DEPDIR=.deps depmode=hp2 /bin/sh -x ./depcomp aCC +DD64
-Wl,+k -DHAVE_CONFIG_H -I. -I. -I.  -D_THREAD_SAFE -DTL1overOSI
-D_POSIX_C_SOURCE=199506L -I./tl1_am/src -I/usr/opt/temip/CMA/include
-mt +DD64 +z -AA -g -c -o tl1_am/src/ne_sim-ne.o `test -f
'tl1_am/src/ne.cxx' || echo './'`tl1_am/src/ne.cxx
+ scriptversion=2006-07-09.11
+ test -z hp2
+ test -z tl1_am/src/ne.cxx
+ test -z tl1_am/src/ne_sim-ne.o
+ + echo tl1_am/src/ne_sim-ne.o
+ sed s|[^\/]*$|.deps/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|
depfile=tl1_am/src/.deps/ne_sim-ne.Po
+ + echo tl1_am/src/.deps/ne_sim-ne.Po
+ sed s/\.\([^.]*\)$/.T\1/
tmpdepfile=tl1_am/src/.deps/ne_sim-ne.TPo
+ rm -f tl1_am/src/.deps/ne_sim-ne.TPo
+ test hp2 = hp
+ test hp2 = dashXmstdout
+ + echo tl1_am/src/ne_sim-ne.o
+ sed -e s|/[^/]*$|/|
dir=tl1_am/src/
+ test xtl1_am/src/ = xtl1_am/src/ne_sim-ne.o
+ + echo tl1_am/src/ne_sim-ne.o
+ sed -e s|^.*/|| -e s/\.o$// -e s/\.lo$//
base=ne_sim-ne
+ test no = yes
+ tmpdepfile1=tl1_am/src/ne_sim-ne.d
+ tmpdepfile2=tl1_am/src/ne_sim-ne.d
+ aCC +DD64 -Wl,+k -DHAVE_CONFIG_H -I. -I. -I. -D_THREAD_SAFE
-DTL1overOSI -D_POSIX_C_SOURCE=199506L -I./tl1_am/src
-I/usr/opt/temip/CMA/include -mt +DD64 +z -AA -g -c -o
tl1_am/src/ne_sim-ne.o tl1_am/src/ne.cxx +Maked
+ stat=0
+ test 0 -eq 0
+ :
+ test -f tl1_am/src/ne_sim-ne.d
+ break
+ test -f tl1_am/src/ne_sim-ne.d
+ sed -e s,^.*\.[a-z]*:,tl1_am/src/ne_sim-ne.o:, tl1_am/src/ne_sim-ne.d
+ 1> tl1_am/src/.deps/ne_sim-ne.Po
+ sed -ne 2,${; s/^ *//; s/ \\*$//; s/$/:/; p;} tl1_am/src/ne_sim-ne.d
+ 1>> tl1_am/src/.deps/ne_sim-ne.Po
+ rm -f tl1_am/src/ne_sim-ne.d tl1_am/src/ne_sim-ne.d
+ exit 0

I'm also attaching demo.tar which illustrates my troubles using only
HP make and HP aCC.  HP support has confirmed to me that they are able
to duplicate my results.

I believe this is all a function of two things:

1.  date of x is less than date of x.cc (where x is any include you
wish to examine, such as
/opt/aCC/include_std/rw/numbrw)

2.  Internal single suffix inference rules within either GNU or HP make

From HP man make:
     Single suffix inference rules (.c) define how to build x from x.c.  In
     effect, the first suffix is null.  Single suffix rules are useful for
     building targets from only one source file; e.g., shell procedures and
     simple C programs.

--
ASCII ribbon campaign:
()  against HTML email
/\  against Microsoft attachments
   Information:  http://www.expita.com/nomime.html

Attachment: ne_sim-ne.Po
Description: Binary data

Attachment: demo.tar
Description: Unix tar archive


reply via email to

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