1# -*- mode:python -*- 2 3# Copyright (c) 2013, 2015, 2016 ARM Limited 4# All rights reserved. 5# 6# The license below extends only to copyright in the software and shall 7# not be construed as granting a license to any other intellectual 8# property including but not limited to intellectual property relating --- 1316 unchanged lines hidden (view full) --- 1325################################################### 1326# 1327# This function is used to set up a directory with switching headers 1328# 1329################################################### 1330 1331main['ALL_ISA_LIST'] = all_isa_list 1332main['ALL_GPU_ISA_LIST'] = all_gpu_isa_list |
1333def make_switching_dir(dname, switch_headers, env): 1334 # Generate the header. target[0] is the full path of the output 1335 # header to generate. 'source' is a dummy variable, since we get the 1336 # list of ISAs from env['ALL_ISA_LIST']. 1337 def gen_switch_hdr(target, source, env): 1338 fname = str(target[0]) 1339 isa = env['TARGET_ISA'].lower() 1340 try: --- 9 unchanged lines hidden (view full) --- 1350 # should get re-executed. 1351 switch_hdr_action = MakeAction(gen_switch_hdr, 1352 Transform("GENERATE"), varlist=['ALL_ISA_LIST']) 1353 1354 # Instantiate actions for each header 1355 for hdr in switch_headers: 1356 env.Command(hdr, [], switch_hdr_action) 1357 |
1358Export('make_switching_dir') 1359 1360def make_gpu_switching_dir(dname, switch_headers, env): 1361 # Generate the header. target[0] is the full path of the output 1362 # header to generate. 'source' is a dummy variable, since we get the 1363 # list of ISAs from env['ALL_ISA_LIST']. 1364 def gen_switch_hdr(target, source, env): 1365 fname = str(target[0]) --- 159 unchanged lines hidden (view full) --- 1525 SConscript('src/SConscript', variant_dir = variant_path, exports = 'env') 1526 1527def pairwise(iterable): 1528 "s -> (s0,s1), (s1,s2), (s2, s3), ..." 1529 a, b = itertools.tee(iterable) 1530 b.next() 1531 return itertools.izip(a, b) 1532 |
1533variant_names = [variant_name(path) for path in variant_paths] 1534 |
1535# Create false dependencies so SCons will parse ISAs, establish 1536# dependencies, and setup the build Environments serially. Either 1537# SCons (likely) and/or our SConscripts (possibly) cannot cope with -j 1538# greater than 1. It appears to be standard race condition stuff; it 1539# doesn't always fail, but usually, and the behaviors are different. 1540# Every time I tried to remove this, builds would fail in some 1541# creative new way. So, don't do that. You'll want to, though, because 1542# tests/SConscript takes a long time to make its Environments. |
1543for t1, t2 in pairwise(sorted(variant_names)): |
1544 main.Depends('#%s-deps' % t2, '#%s-deps' % t1) 1545 main.Depends('#%s-environs' % t2, '#%s-environs' % t1) 1546 1547# base help text 1548Help(''' 1549Usage: scons [scons options] [build variables] [target(s)] 1550 1551Extra scons options: 1552%(options)s 1553 1554Global build variables: 1555%(global_vars)s 1556 1557%(local_vars)s 1558''' % help_texts) |