Having once again spent a reasonably large amount of time screwing
with various bits of the IMP configure scripts in order to get things
to work on a mac, I would really like us to simplify things.
I suggest the configure options simply be
extra_lib_paths="a//b/lib c/d/lib"
extra_include_paths="a/b/include c/d/include"
python_path="a/b/lib/python-2.5/..."
which get parsed and prepended to the scon environment before any
tests are performed and get added to all build environments. (I am not
sure if space is the best delimiter, but that can be solved later,
perhaps by using python syntax "['a/b/include', 'c/d/include']").
The cgal, boost, em, modeller etc arguments can then be removed and
configure can then simply test if it can build against modeller, em,
cgal, boost etc and not worry about making sure all the paths are
added in the right places. We then only have to worry about adding the
correct library dependencies to link commands and otherwise ignore
dependencies in the build scripts.
This also makes it clear that all libraries are searched for in all
locations. Keren, Javi and I have all at various points been confused
and frustrated by imp picking up copies of libimp in the diva modeller
build when neither the imp config arguments nor the directory name (/
diva1/home/modeller-SVN) gave us any clue that such could happen.
This also removes the distinction between setups which we happen to
have encoded into our config system (which work magically) and setups
which differ in some way from what is encoded (which can't be easily
made to work). There is currently no way for a user to tell whether
things will work, what to do to fix them if they don't and no simple
way to document what will work. And we can't ship prebuilt mac
binaries for C++ programmers since the boost versions have to match,
so we have to support the large number of different ways things can be
set up on macs at the very least.