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 bug-automake@gnu.org, please CC me on any replies to this message. Brian