#! /usr/bin/python import os, glob, sys libraryName='baseprocessing' def scanFiles(pattern, paths) : files = [] for path in paths : files+=glob.glob(os.path.join(path,pattern)) return files def recursiveDirs(root) : return filter( (lambda a : a.rfind( ".svn")==-1 ), [ a[0] for a in os.walk(root)] ) options = Variables('options.cache', ARGUMENTS) options.Add(PathVariable('clam_prefix', 'The prefix where CLAM was installed', '/bad/path')) if sys.platform=='linux2' : options.Add(BoolVariable('crossmingw', 'Activates the MinGW Windows crosscompiling mode', 'no')) env = Environment(ENV=os.environ, options=options) options.Save('options.cache', env) Help(options.GenerateHelpText(env)) env.SConsignFile() # Single signature file CLAMInstallDir = env['clam_prefix'] clam_sconstoolspath = os.path.join(CLAMInstallDir,'share','clam','sconstools') if env['crossmingw'] : env.Tool('crossmingw', toolpath=[clam_sconstoolspath]) env.Tool('clam', toolpath=[clam_sconstoolspath]) env.EnableClamModules([ 'clam_core', 'clam_audioio', 'clam_processing', ] , CLAMInstallDir) sourcePaths = recursiveDirs(".") sources = scanFiles('*.cxx', sourcePaths) sources = dict.fromkeys(sources).keys() if sys.platform=='linux2' : env.Append( CCFLAGS=['-g','-O3','-Wall'] ) libraries = [ env.SharedLibrary(target=libraryName, source = sources), ] install = env.Install(os.path.join(CLAMInstallDir,'lib','clam'), libraries) env.Alias('install', install) env.Default(libraries)