summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-10-14 21:39:21 -0700
committerGabe Black <gabeblack@google.com>2017-10-17 18:57:50 +0000
commitb8efd0e854ae568dae33fe3d24f67054ed016d19 (patch)
treebf9eccdc6f2e89bbff30ba3b1470a6c932e09ccd /SConstruct
parent1b63b756cc6ca75acceee51397f815df06fb0dff (diff)
downloadgem5-b8efd0e854ae568dae33fe3d24f67054ed016d19.tar.xz
scons: Stop generating inc.d in the isa parser.
Generating dependency/build product information in the isa parser breaks scons idea of how a build is supposed to work. Arm twisting it into working forced a lot of false dependencies which slowed down the build. Change-Id: Iadee8c930fd7c80136d200d69870df7672a6b3ca Reviewed-on: https://gem5-review.googlesource.com/5081 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'SConstruct')
-rwxr-xr-xSConstruct49
1 files changed, 0 insertions, 49 deletions
diff --git a/SConstruct b/SConstruct
index b5e3805a6..95efb8384 100755
--- a/SConstruct
+++ b/SConstruct
@@ -1407,41 +1407,12 @@ def switching_headers(self, headers, source):
main.AddMethod(switching_headers, 'SwitchingHeaders')
-# all-isas -> all-deps -> all-environs -> all_targets
-main.Alias('#all-isas', [])
-main.Alias('#all-deps', '#all-isas')
-
-# Dummy target to ensure all environments are created before telling
-# SCons what to actually make (the command line arguments). We attach
-# them to the dependence graph after the environments are complete.
-ORIG_BUILD_TARGETS = list(BUILD_TARGETS) # force a copy; gets closure to work.
-def environsComplete(target, source, env):
- for t in ORIG_BUILD_TARGETS:
- main.Depends('#all-targets', t)
-
-# Each build/* switching_dir attaches its *-environs target to #all-environs.
-main.Append(BUILDERS = {'CompleteEnvirons' :
- Builder(action=MakeAction(environsComplete, None))})
-main.CompleteEnvirons('#all-environs', [])
-
-def doNothing(**ignored): pass
-main.Append(BUILDERS = {'Dummy': Builder(action=MakeAction(doNothing, None))})
-
-# The final target to which all the original targets ultimately get attached.
-main.Dummy('#all-targets', '#all-environs')
-BUILD_TARGETS[:] = ['#all-targets']
-
###################################################
#
# Define build environments for selected configurations.
#
###################################################
-def variant_name(path):
- return os.path.basename(path).lower().replace('_', '-')
-main['variant_name'] = variant_name
-main['VARIANT_NAME'] = '${variant_name(BUILDDIR)}'
-
for variant_path in variant_paths:
if not GetOption('silent'):
print "Building in", variant_path
@@ -1553,26 +1524,6 @@ for variant_path in variant_paths:
# one for each variant build (debug, opt, etc.)
SConscript('src/SConscript', variant_dir = variant_path, exports = 'env')
-def pairwise(iterable):
- "s -> (s0,s1), (s1,s2), (s2, s3), ..."
- a, b = itertools.tee(iterable)
- b.next()
- return itertools.izip(a, b)
-
-variant_names = [variant_name(path) for path in variant_paths]
-
-# Create false dependencies so SCons will parse ISAs, establish
-# dependencies, and setup the build Environments serially. Either
-# SCons (likely) and/or our SConscripts (possibly) cannot cope with -j
-# greater than 1. It appears to be standard race condition stuff; it
-# doesn't always fail, but usually, and the behaviors are different.
-# Every time I tried to remove this, builds would fail in some
-# creative new way. So, don't do that. You'll want to, though, because
-# tests/SConscript takes a long time to make its Environments.
-for t1, t2 in pairwise(sorted(variant_names)):
- main.Depends('#%s-deps' % t2, '#%s-deps' % t1)
- main.Depends('#%s-environs' % t2, '#%s-environs' % t1)
-
# base help text
Help('''
Usage: scons [scons options] [build variables] [target(s)]