Hi Brian, * Brian Lloyd wrote on Tue, Oct 25, 2005 at 07:34:14AM CEST: > On Mon, 2005-10-24 at 09:53 +0200, Ralf Wildenhues wrote: > > * Brian Lloyd wrote on Mon, Oct 24, 2005 at 04:44:32AM CEST: > > > > > BOOSTSOURCES += \ > > > "boost/1_33/src/list.cpp" \ > > > "boost/1_33/src/module.cpp" \ > > > "boost/1_33/src/tuple.cpp" > > > endif BOOST1_33 > > > > 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?
I believe not. The Cc: to bug-automake is to solicit an authoritative answer. :) > Unnecessary in this case (no spaces in the names), but still valid. Avoid file names with spaces, if at all possible. > 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), Hmm. No, I think this would not work. See below for two other solutions that should work. > 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. OK. One possibility is to use the Automake option `subdir-objects' which creates boost/src/1_33/*list.${OBJEXT} from boost/src/1_33/list.cpp (the `*' indicates that there might happen some more name mangling here). This option is recommended for everybody that uses non-recursive `make' with Automake. Be sure to read the specific documentation about it (and set either package-wide in configure.ac: AM_INIT_AUTOMAKE or Makefile.am-wide in AUTOMAKE_OPTIONS). The other possibility is to use per-target flags. Since I believe the first one will be best for you, I won't go into detail here -- again the documentation and previous threads here contain the gory details. > The following error is what I get from running make with my latest > changes. > > make[2]: Entering directory > `/home/lloydbr/src/games/vegastrike/vegastrike' *snip* > 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 Oh, one thing you /might/ need to do after changing these issues: wipe your build tree and configure again. Automake cannot track what needs updating after you changed this. > It looks like multiple directory support in automake still has some > issues. Nono, these aren't (confirmed) issues (yet). :) > Since I am not currently subscribed to bug-automake@gnu.org, please CC > me on any replies to this message. Certainly. Cheers, Ralf