[clam-devel] WIP/RFC: yet another build system change

David García Garzón david.garcia at upf.edu
Sun Oct 31 08:48:41 PDT 2010

No, we are not abandoning scons for a new tool. We are pretty happy with it. 
The problem is that the scripts we initially developed to build the main three 
libraries are getting old and need a simplification. Those scripts were our 
first contact with SCons and it is clear that some design decissions were not 
the better ones, and also many workarounds are not needed anymore 
because of new Scons features are availalbe. I commited my experiments into 

In summary, the current proposal includes:
- Modules defined by subdirectories
- All modules are built as library and plugin
- No source build copies
- Each module can add its own command line options, and configure checks.
- Full use of pkg-config (a new tool with config checks has been added)
- Working uninstall target ('scons -c install' removed also built files)
- Using --install-sandbox scons feature instead our prefix_for_packaging
- All the goodies in clam.py tool we already used for plugins and apps

One big goal is modularity. Current modularization (core/audioio/processing) 
is useless because you always need all the modules: core, audioio (you need 
one I/O method to be useful, being fileio, jack, midi...) and processing (to 
actually do something). So we want to define smaller modules. each one 
adding their own:
- command line scons options
- configuration methods
- compilation flags
- external and internal dependencies

My proposal is defining a module as a subdir with an Scons script named, say, 
'Module' in its root. All the cxx files under that subdir are included in the 
module. All hxx get installed in prefix/include/CLAM/name. All subdirs with an 
hxx file are included in the CPPPATH to compile the module (not for 

That's WIP, the first big milestone would be reproducing current modules. 
Currently i managed to define a single module but dependencies are not done 
yet. Please, post your comments and ideas in this thread.

David García Garzón
(Work) david dot garcia at upf anotherdot edu

More information about the clam-devel mailing list