* Roberto Bagnara wrote on Thu, Aug 21, 2008 at 08:00:04PM CEST: > Ralf Wildenhues wrote: >> >> Are you saying that you generate Makefile.am (or an include snippet >> for it) automatically?
> no. In the previous version we generated automatically the individual > C++ sources, including one that #included all the others. The list > of C++ sources is only known at configure time: at that time the > sources are generated. Well, as long as the list of possible source can be enumerated, you can use EXTRA_*_SOURCES to list them. >> If not, why not, if yes, what is the problem >> with maintaining consistency with a script? Ideally, you generate >> both the files and the makefile.am snippet from the same script. > > Can I generated the Makefile.am at configure time? No. > Notice that > the list of domains is really unbounded: the PPL supports constructions > on domains like products and powersets. So the user can ask > for a product of a powerset of a product of ... > We really cannot anticipate all the possibilities. That's a problem. There *may* be a workaround. Let's rather call it ugliest hack ever. It *requires* that you don't use per-target flags. It does not provide dependency tracking for the generated files. > I am halfway through it. I thought I had found a workaround, > but there are still problems. What I have at the moment is > something that suffers from the problem outlined above and, > in addition, does not work: [...] > # @required_instantiations_prolog_cxx_objects@ contains > # the list of the .lo file corresponding to the .cc files > # above. If I do `make libppl_swiprolog.la' I get > # the error that the (inexistent) .lo files are invalid > # Libtool files. Bot if I do, e.g., > # `make pl_prolog_Polyhedron.lo' the right thing happens. > # I wonder why `make libppl_swiprolog.la' does not make > # all the required .lo files. Yep. Your approach is essentially the hack I had in mind. Put the added objects in libppl_swiprolog_la_DEPENDENCIES, too, then things will work. Of course then you have to put everything else manually in that DEPENDENCIES variable, too (which automake would otherwise do). Cheers, Ralf