bug-automake
[Top][All Lists]
Advanced

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

Re: Funny behavior from autoconf


From: Brian Lloyd
Subject: Re: Funny behavior from autoconf
Date: Tue, 25 Oct 2005 00:34:14 -0500

On Mon, 2005-10-24 at 09:53 +0200, Ralf Wildenhues wrote:
> Hi Brian,
> 
> [ copying bug-automake on this, it's better suited there; please remove
> autoconf at gnu.org from followups; thank you ]
> 
> * Brian Lloyd wrote on Mon, Oct 24, 2005 at 04:44:32AM CEST:
> > The following Makefile.am does not work as expected.  This is a stripped
> > down version of the complete makefile.  It still shows the same problem
> > as the complete file, which is more than twice as large. 
> *snip*
> 
> > #BOOST_BEGIN -- Data between the BOOST_AUTO and BOOST_END tags is auto
> > generated.
> > BOOSTSOURCES = 
> > if BOOST1_33
> > BOOSTSOURCES += \
> >     "boost/1_33/src/list.cpp" \
> >     "boost/1_33/src/module.cpp" \
> >     "boost/1_33/src/tuple.cpp" 
> > endif BOOST1_33
> *snip*
> 


> Does it work if you remove all the double quotes from the source lists?
> 
> This is an Automake issue.  It's probably unsupported to have files
> quoted; I'm not sure though, whether it should be supported or the
> documentation updated to let you know about this.
> 

Taking out the " does fix the problem.  However, they should be valid,
shouldn't they?  Unnecessary in this case (no spaces in the names), but
still valid.


However, that leaves a slightly different problem.  The Makefile.in then
can't be created because their are multiple files that generate the same
object file.  (boost/src/1_33/list.cpp and boost/src/1_28/list.cpp both
generate list.o)  I tried to work around the problem by using prog_LDADD
instead of prog_SOURCES, and create an empty rule (so the default rule
would be used) that makes .cpp to .o created in the same directory as
the .cpp (boost/src/1_33/list.o:boost/src/1_33/list.cpp), but this fails
because the dependencies file does not exist.  Is there an easy way to
add the dependency files for these objects into the .deps folder under
the top directory.  I am using (trying, at least) to use non-recursive
make to build a multi-directory program.  The only problem I have is
that we need to support multiple versions of a "VENDOR" supplied
library, and so that library causes us to have some non-unique file
names.


The following error is what I get from running make with my latest
changes.

make[2]: Entering directory
`/home/lloydbr/src/games/vegastrike/vegastrike'
if /home/lloydbr/gcc344/bin/g++ -DHAVE_CONFIG_H -I. -I. -I.
-DHAVE_SDL=1 -DSDL_WINDOWING=1      -DHAVE_AL=1   -DHAVE_OGG
-I/usr/include/python2.4 -DHAVE_PYTHON=1  -I./boost/  -I./src   -pipe
-falign-loops=2 -falign-jumps=2 -falign-functions=2  -I/usr/include/SDL
-D_REENTRANT -pthread -pipe -MT boost/1_31/src/list.o -MD -MP -MF
".deps/boost/1_31/src/list.Tpo" -c -o boost/1_31/src/list.o
boost/1_31/src/list.cpp; \
then mv -f ".deps/boost/1_31/src/list.Tpo"
".deps/boost/1_31/src/list.Po"; else rm -f
".deps/boost/1_31/src/list.Tpo"; exit 1; fi
boost/1_31/src/list.cpp:143: fatal error: opening dependency
file .deps/boost/1_31/src/list.Tpo: No such file or directory
compilation terminated.
make[2]: *** [boost/1_31/src/list.o] Error 1


It looks like multiple directory support in automake still has some
issues.

Since I am not currently subscribed to address@hidden, please CC
me on any replies to this message.


Brian





reply via email to

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