Here I try to answer all the questions. Please let me know if I missed any.
On 8/8/06, Ralf Wildenhues <[EMAIL PROTECTED]> 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
ne_sim-ne.Po
Description: Binary data
demo.tar
Description: Unix tar archive