Import ('env') # To avoid other libraries accumulation: localEnv = env.Clone() # Process ################################################################# #pName = "example__" bnames = Dir('..').abspath.rsplit('/', 2) pName = "example_" + bnames[-2] + "_" + bnames[-1] pPath = pName.replace("_", "/") + "/" # Anna modules ############################################################ pwd = str(Dir ('.').abspath); anna_libpaths = [] anna_libs = [] modules = [ 'core', 'io', 'xml', 'time' ]; for module in modules: anna_libs.append ("anna_" + module) #module = module.replace("_", ".") anna_libpaths.append (pwd.replace (pPath, ("source/" + module + "/"))) # http://scons.1086193.n5.nabble.com/How-to-force-the-use-of-a-static-library-when-the-dynamic-library-is-available-as-well-td28385.html # libdiameter static variant: project_root = localEnv['PROJECT_ROOT'] variant_dir = localEnv['VARIANT_DIR'] anna_libs.append (File (project_root + "/source/diameter/" + variant_dir + "/libanna_diameter.a")) anna_rlibs = list(anna_libs) anna_rlibs.reverse() # Libraries ############################################################### anna_library = { 'LIBS' : anna_rlibs } localEnv.MergeFlags (anna_library) system_library = { 'LIBS' : [ 'xml2', 'rt' ] } localEnv.MergeFlags (system_library) localEnv.Append(LIBPATH = anna_libpaths) # Linking ################################################################# result = localEnv.Program (pName, Glob ('*.cpp')) Return ('result')