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.
Any better suggestions?