[PPL-devel] Configure substitutions are not allowed in _SOURCES variables

Roberto Bagnara bagnara at cs.unipr.it
Thu Aug 21 20:00:04 CEST 2008


Ralf Wildenhues wrote:
> * Roberto Bagnara wrote on Thu, Aug 21, 2008 at 12:55:25PM CEST:
> [ ... lots of sources, conditional and all ... ]
> 
>> Using the solution outlined in the Automake manual
>> (i.e., using conditionals) would cause us to write enormous
>> Makefile.am files which would be a maintenance nightmare.
>> That is, now everything is automated; if we use a long
>> chain of conditionals we would have to maintain consistency
>> by hand.
> 
> Are you saying that you generate Makefile.am (or an include snippet
> for it) automatically?

Hi Ralf,

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.

> 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?  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.

> Do you already do the splitup in CVS?  I cannot see it there
> (I just got HEAD from :pserver:anoncvs at cvs.cs.unipr.it:/cvs/ppl).

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:

pkglib_LTLIBRARIES = libppl_swiprolog.la

nodist_libppl_swiprolog_la_SOURCES = \
ppl_swiprolog.cc

EXTRA_libppl_swiprolog_la_SOURCES = \
../ppl_prolog_Polyhedron.cc \
../ppl_prolog_Grid.cc \
../ppl_prolog_Pointset_Powerset_C_Polyhedron.cc \
../ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc
# The above is the list of configure-dependent sources
# that we cannot anticipate.  So listing the files here
# is unsatisfactory.

libppl_swiprolog_la_LIBADD = \
@required_instantiations_prolog_cxx_objects@ \
$(top_builddir)/src/libppl.la \
$(WATCHDOG_LIBRARY) \
@extra_libraries@

# @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.

Thanks,

     Roberto

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it



More information about the PPL-devel mailing list