Ralf Wildenhues <[EMAIL PROTECTED]> writes: > Hello Simon, > > * Simon Josefsson wrote on Tue, Oct 10, 2006 at 03:10:38PM CEST: >> >> [EMAIL PROTECTED]:/tmp/jas4711/libidn-0.6.8/gl$ make >> make all-am >> if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. >> -I.. -g -O2 -MT ../gl/error.lo -MD -MP -MF ".deps/../gl/error.Tpo" -c >> -o ../gl/error.lo ../gl/error.c; then mv -f ".deps/../gl/error.Tpo" >> ".deps/../gl/error.Plo"; else rm -f ".deps/../gl/error.Tpo"; exit 1; fi >> gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT ../gl/error.lo -MD -MP -MF >> .deps/../gl/error.Tpo -c ../gl/error.c -fPIC -DPIC -o ../gl/.libs/error.o >> cc1: No such file or directory: opening dependency file .deps/../gl/error.Tpo > >> The problem seems to be that libtool doesn't understand relative >> dependencies in libgnu_la_DEPENDENCIES, and the -MF parameter becomes >> wrong. > > Most certainly not a Libtool bug. Which exact Automake version is used, > how can I reproduce this failure easily?
I'm using automake 1.9.6. It isn't easy to reproduce this right now, since it involves setting up a project with two different gnulib directories. I can install what I'm working on right now on a CVS branch in libidn, if you want to take a look. >> @@ -1137,7 +1138,8 @@ func_emit_lib_Makefile_am () >> echo "${libname}_${libext}_SOURCES =" >> # Here we use $(LIBOBJS), not @[EMAIL PROTECTED] The value is the same. >> However, >> # automake during its analyses looks for $(LIBOBJS), not for @[EMAIL >> PROTECTED] >> - echo "${libname}_${libext}_LIBADD = \$(${perhapsLT}LIBOBJS)" >> + echo "${libname}_${libext}_LIBADD = >> \$(${macro_prefix}_${perhapsLT}LIBOBJS)" >> + echo "${libname}_${libext}_DEPENDENCIES = >> \$(${macro_prefix}_${perhapsLT}LIBOBJS)" > > You can just drop this last line. Automake can compute these > dependencies. Note that we aren't talking about LTLIBOBJS or LIBOBJS, for which automake indeed seems to do some magic -- this is about foo_LTLIBOBJS, a replacement that allows multiple OBJDIR's in a project. If I removed that line, the dependencies (error.lo) weren't built at all, at least that's the reason I added it. I may of course still be wrong, of course... but I thought I should offer an explanation first. Maybe there is some better way to cause the dependencies to be built, except libgnu_la_DEPENDENCIES? /Simon