all_cpu_list.sort()
default_cpus.sort()
+def ExtraPathValidator(key, val, env):
+ paths = val.split(':')
+ for path in paths:
+ path = os.path.expanduser(path)
+ if not isdir(path):
+ raise AttributeError, "Invalid path: '%s'" % path
+
sticky_opts.AddOptions(
EnumOption('TARGET_ISA', 'Target ISA', 'alpha', all_isa_list),
BoolOption('FULL_SYSTEM', 'Full-system support', False),
('BATCH_CMD', 'Batch pool submission command name', 'qdo'),
('PYTHONHOME',
'Override the default PYTHONHOME for this system (use with caution)',
- '%s:%s' % (sys.prefix, sys.exec_prefix))
+ '%s:%s' % (sys.prefix, sys.exec_prefix)),
+ ('EXTRAS', 'Add Extra directories to the compilation', '',
+ ExtraPathValidator)
)
nonsticky_opts.AddOptions(
for build_path in build_paths:
print "Building in", build_path
+ env['BUILDDIR'] = build_path
+
# build_dir is the tail component of build path, and is used to
# determine the build parameters (e.g., 'ALPHA_SE')
(build_root, build_dir) = os.path.split(build_path)
#
# Walk the tree and execute all SConscripts
#
-scripts = []
srcdir = env['SRCDIR']
for root, dirs, files in os.walk(srcdir, topdown=True):
if root == srcdir:
base = root[len(srcdir) + 1:]
SConscript(joinpath(base, 'SConscript'))
+for extra in env['EXTRAS'].split(':'):
+ extra = os.path.expanduser(extra)
+ env.Append(CPPPATH=[Dir(extra)])
+ for root, dirs, files in os.walk(extra, topdown=True):
+ if 'SConscript' in files:
+ subdir = root[len(os.path.dirname(extra))+1:]
+ build_dir = joinpath(env['BUILDDIR'], subdir)
+ SConscript(joinpath(root, 'SConscript'), build_dir=build_dir)
+
for opt in env.ExportOptions:
env.ConfigFile(opt)