OLD | NEW |
---|---|
1 # -*- python -*- | 1 # -*- python -*- |
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import atexit | 6 import atexit |
7 import glob | 7 import glob |
8 import os | 8 import os |
9 import platform | 9 import platform |
10 import stat | 10 import stat |
(...skipping 1880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1891 def CheckPlatformPreconditions(): | 1891 def CheckPlatformPreconditions(): |
1892 "Check and fail fast if platform-specific preconditions are unmet." | 1892 "Check and fail fast if platform-specific preconditions are unmet." |
1893 | 1893 |
1894 if base_env.Bit('target_arm') and (base_env.Bit('build_x86_32') or | 1894 if base_env.Bit('target_arm') and (base_env.Bit('build_x86_32') or |
1895 base_env.Bit('build_x86_64')): | 1895 base_env.Bit('build_x86_64')): |
1896 assert os.getenv('NACL_SDK_CC'), ( | 1896 assert os.getenv('NACL_SDK_CC'), ( |
1897 "NACL_SDK_CC undefined. " | 1897 "NACL_SDK_CC undefined. " |
1898 "Source tools/llvm/setup_arm_untrusted_toolchain.sh.") | 1898 "Source tools/llvm/setup_arm_untrusted_toolchain.sh.") |
1899 | 1899 |
1900 # ---------------------------------------------------------- | 1900 # ---------------------------------------------------------- |
1901 pre_base_env.Append( | |
robertm
2011/06/27 14:55:15
Are those defines now visible to the "pnacl env".
robertm
2011/06/27 17:57:34
by "pnacl env" I meant the nacl_env with "bitcode=
| |
1902 CPPDEFINES = [ | |
1903 ['NACL_BLOCK_SHIFT', '5'], | |
1904 ['NACL_BLOCK_SIZE', '32'], | |
1905 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
1906 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
1907 ], | |
1908 ) | |
1909 | |
1901 base_env = pre_base_env.Clone() | 1910 base_env = pre_base_env.Clone() |
1902 base_env.Append( | 1911 base_env.Append( |
1903 BUILD_SUBTYPE = '', | 1912 BUILD_SUBTYPE = '', |
1904 CPPDEFINES = [ | 1913 CPPDEFINES = [ |
1905 ['NACL_BLOCK_SHIFT', '5'], | |
1906 ['NACL_BLOCK_SIZE', '32'], | |
1907 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
1908 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
1909 ['NACL_TARGET_ARCH', '${TARGET_ARCHITECTURE}' ], | 1914 ['NACL_TARGET_ARCH', '${TARGET_ARCHITECTURE}' ], |
1910 ['NACL_TARGET_SUBARCH', '${TARGET_SUBARCH}' ], | 1915 ['NACL_TARGET_SUBARCH', '${TARGET_SUBARCH}' ], |
1911 ], | 1916 ], |
1912 CPPPATH = ['${SOURCE_ROOT}'], | 1917 CPPPATH = ['${SOURCE_ROOT}'], |
1913 | 1918 |
1914 EXTRA_CFLAGS = [], | 1919 EXTRA_CFLAGS = [], |
1915 EXTRA_CCFLAGS = [], | 1920 EXTRA_CCFLAGS = [], |
1916 EXTRA_CXXFLAGS = [], | 1921 EXTRA_CXXFLAGS = [], |
1917 EXTRA_LIBS = [], | 1922 EXTRA_LIBS = [], |
1918 CFLAGS = ['${EXTRA_CFLAGS}'], | 1923 CFLAGS = ['${EXTRA_CFLAGS}'], |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2342 # Do this before the site_scons/site_tools/naclsdk.py stuff to pass it along. | 2347 # Do this before the site_scons/site_tools/naclsdk.py stuff to pass it along. |
2343 pre_base_env.Append( | 2348 pre_base_env.Append( |
2344 PNACL_BCLDFLAGS = ARGUMENTS.get('pnacl_bcldflags', '').split(':')) | 2349 PNACL_BCLDFLAGS = ARGUMENTS.get('pnacl_bcldflags', '').split(':')) |
2345 | 2350 |
2346 # ---------------------------------------------------------- | 2351 # ---------------------------------------------------------- |
2347 # The nacl_env is used to build native_client modules | 2352 # The nacl_env is used to build native_client modules |
2348 # using a special tool chain which produces platform | 2353 # using a special tool chain which produces platform |
2349 # independent binaries | 2354 # independent binaries |
2350 # NOTE: this loads stuff from: site_scons/site_tools/naclsdk.py | 2355 # NOTE: this loads stuff from: site_scons/site_tools/naclsdk.py |
2351 # ---------------------------------------------------------- | 2356 # ---------------------------------------------------------- |
2352 nacl_env = pre_base_env.Clone( | 2357 |
2358 nacl_common_env = pre_base_env.Clone( | |
2353 tools = ['naclsdk'], | 2359 tools = ['naclsdk'], |
2354 BUILD_TYPE = 'nacl', | |
2355 BUILD_TYPE_DESCRIPTION = 'NaCl module build', | |
2356 NACL_BUILD_FAMILY = 'UNTRUSTED', | 2360 NACL_BUILD_FAMILY = 'UNTRUSTED', |
2357 | 2361 |
2362 ARFLAGS = 'rc', | |
2363 | |
2364 # ${SOURCE_ROOT} for #include <ppapi/...> | |
2365 # ${SOURCE_ROOT}/gpu for #include <GLES2/...>" | |
Brad Chen
2011/06/25 13:50:11
thank you for adding comments here.
| |
2366 CPPPATH = ['${SOURCE_ROOT}', '${SOURCE_ROOT}/gpu'], | |
Nick Bray
2011/06/27 19:52:27
Suggestion: linebreak the paths, comment each entr
| |
2367 | |
2358 EXTRA_CFLAGS = [], | 2368 EXTRA_CFLAGS = [], |
2359 EXTRA_CCFLAGS = ARGUMENTS.get('nacl_ccflags', '').split(':'), | 2369 EXTRA_CCFLAGS = ARGUMENTS.get('nacl_ccflags', '').split(':'), |
2360 EXTRA_CXXFLAGS = [], | 2370 EXTRA_CXXFLAGS = [], |
2361 EXTRA_LIBS = [], | 2371 EXTRA_LIBS = [], |
2362 EXTRA_LINKFLAGS = ARGUMENTS.get('nacl_linkflags', '').split(':'), | 2372 EXTRA_LINKFLAGS = ARGUMENTS.get('nacl_linkflags', '').split(':'), |
2363 | 2373 |
2364 # This is the address at which a user executable is expected to | |
2365 # place its data segment in order to be compatible with the | |
2366 # integrated runtime (IRT) library. | |
2367 IRT_DATA_REGION_START = '0x10000000', | |
2368 # Load addresses of the IRT's code and data segments. | |
2369 IRT_BLOB_CODE_START = '0x08000000', | |
2370 IRT_BLOB_DATA_START = '0x18000000', | |
2371 | |
2372 # always optimize binaries | 2374 # always optimize binaries |
2373 # Command line option nacl_ccflags=... add additional option to nacl build | 2375 # Command line option nacl_ccflags=... add additional option to nacl build |
2374 CCFLAGS = ['-O2', | 2376 CCFLAGS = ['-O2', |
2375 '-fomit-frame-pointer', | 2377 '-fomit-frame-pointer', |
2376 '-Wall', | 2378 '-Wall', |
2377 '-fdiagnostics-show-option', | 2379 '-fdiagnostics-show-option', |
2378 '-pedantic', | 2380 '-pedantic', |
2379 ] + | 2381 ] + |
2380 werror_flags + | 2382 werror_flags + |
2381 ['${EXTRA_CCFLAGS}'] , | 2383 ['${EXTRA_CCFLAGS}'] , |
2382 CPPPATH = ['$SOURCE_ROOT'], | 2384 |
2383 CFLAGS = ['-std=gnu99', | 2385 CFLAGS = ['-std=gnu99', |
2384 ] + | 2386 ] + |
2385 ['${EXTRA_CFLAGS}'], | 2387 ['${EXTRA_CFLAGS}'], |
2386 CXXFLAGS = ['-std=gnu++98', | 2388 CXXFLAGS = ['-std=gnu++98', |
2387 '-Wno-long-long', | 2389 '-Wno-long-long', |
2388 ] + | 2390 ] + |
2389 ['${EXTRA_CXXFLAGS}'], | 2391 ['${EXTRA_CXXFLAGS}'], |
2392 | |
2393 # This is the address at which a user executable is expected to | |
2394 # place its data segment in order to be compatible with the | |
2395 # integrated runtime (IRT) library. | |
2396 IRT_DATA_REGION_START = '0x10000000', | |
2397 # Load addresses of the IRT's code and data segments. | |
2398 IRT_BLOB_CODE_START = '0x08000000', | |
2399 IRT_BLOB_DATA_START = '0x18000000', | |
2400 ) | |
2401 | |
2402 # These add on to those set in pre_base_env, above. | |
2403 nacl_common_env.Append( | |
2404 CPPDEFINES = [ | |
2405 # This ensures that UINT32_MAX gets defined. | |
2406 ['__STDC_LIMIT_MACROS', '1'], | |
2407 # This ensures that PRId64 etc. get defined. | |
2408 ['__STDC_FORMAT_MACROS', '1'], | |
2409 # _GNU_SOURCE ensures that strtof() gets declared. | |
2410 ['_GNU_SOURCE', 1], | |
2411 # strdup, and other common stuff | |
2412 ['_BSD_SOURCE', '1'], | |
2413 ['_POSIX_C_SOURCE', '199506'], | |
2414 ['_XOPEN_SOURCE', '600'], | |
2415 | |
2416 ['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | |
Nick Bray
2011/06/27 19:52:27
What does this do?
| |
2417 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ], | |
2418 ], | |
2419 ) | |
2420 | |
2421 nacl_env = nacl_common_env.Clone( | |
2422 BUILD_TYPE = 'nacl', | |
2423 BUILD_TYPE_DESCRIPTION = 'NaCl module build', | |
2424 | |
2425 # This magic is copied from scons-2.0.1/engine/SCons/Defaults.py | |
2426 # where this pattern is used for _LIBDIRFLAGS, which produces -L | |
2427 # switches. Here we are producing a -Wl,-rpath-link,DIR for each | |
2428 # element of LIBPATH, i.e. for each -LDIR produced. | |
2429 RPATH_LINK_FLAGS = '$( ${_concat(RPATHLINKPREFIX, LIBPATH, RPATHLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)', | |
bradn
2011/06/25 21:03:55
Use implict concat to join:
('stringislong'
'mores
| |
2430 RPATHLINKPREFIX = '-Wl,-rpath-link,', | |
2431 RPATHLINKSUFFIX = '', | |
2432 | |
2390 LIBS = [], | 2433 LIBS = [], |
2391 LINKFLAGS = ['${EXTRA_LINKFLAGS}'], | 2434 LINKFLAGS = ['${EXTRA_LINKFLAGS}', '${RPATH_LINK_FLAGS}'], |
2392 CPPDEFINES = [ | |
2393 # _GNU_SOURCE ensures that strtof() gets declared. | |
2394 ['_GNU_SOURCE', 1], | |
2395 # This ensures that PRId64 etc. get defined. | |
2396 ['__STDC_FORMAT_MACROS', '1'], | |
2397 # strdup, and other common stuff | |
2398 ['_BSD_SOURCE', '1'], | |
2399 ['_POSIX_C_SOURCE', '199506'], | |
2400 ['_XOPEN_SOURCE', '600'], | |
2401 ], | |
2402 ) | 2435 ) |
2403 | 2436 |
2437 if nacl_common_env.Bit('host_windows'): | |
2438 # NOTE: This is needed because Windows builds are case-insensitive. | |
2439 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2440 nacl_common_env.Replace(ASCOM = '${CCCOM}') | |
Nick Bray
2011/06/27 19:52:27
No spaces around "="
| |
2441 | |
2442 # Look in the local include and lib directories before the toolchain's. | |
2443 nacl_env['INCLUDE_DIR'] = '${TARGET_ROOT}/include' | |
2444 # Remove the default $LIB_DIR element so that we prepend it without duplication. | |
2445 # Using PrependUnique alone would let it stay last, where we want it first. | |
2446 nacl_env.FilterOut(LIBPATH=['${LIB_DIR}']) | |
2447 nacl_env.PrependUnique( | |
2448 CPPPATH = ['${INCLUDE_DIR}'], | |
2449 LIBPATH = ['${LIB_DIR}'], | |
2450 ) | |
2451 | |
2404 if not nacl_env.Bit('bitcode'): | 2452 if not nacl_env.Bit('bitcode'): |
2405 if nacl_env.Bit('build_x86_32'): | 2453 if nacl_env.Bit('build_x86_32'): |
2406 nacl_env.Append(CCFLAGS = ['-m32'], LINKFLAGS = '-m32') | 2454 nacl_env.Append(CCFLAGS = ['-m32'], LINKFLAGS = '-m32') |
2407 elif nacl_env.Bit('build_x86_64'): | 2455 elif nacl_env.Bit('build_x86_64'): |
2408 nacl_env.Append(CCFLAGS = ['-m64'], LINKFLAGS = '-m64') | 2456 nacl_env.Append(CCFLAGS = ['-m64'], LINKFLAGS = '-m64') |
2409 | 2457 |
2410 if nacl_env.Bit('bitcode'): | 2458 if nacl_env.Bit('bitcode'): |
2411 # TODO(robertm): remove this ASAP, we currently have llvm issue with c++ | 2459 # TODO(robertm): remove this ASAP, we currently have llvm issue with c++ |
2412 nacl_env.FilterOut(CCFLAGS = ['-Werror']) | 2460 nacl_env.FilterOut(CCFLAGS = ['-Werror']) |
2413 nacl_env.Append(CFLAGS = werror_flags) | 2461 nacl_env.Append(CFLAGS = werror_flags) |
(...skipping 14 matching lines...) Expand all Loading... | |
2428 # We use a special environment for building the IRT image because it must | 2476 # We use a special environment for building the IRT image because it must |
2429 # always use the newlib toolchain, regardless of --nacl_glibc. We clone | 2477 # always use the newlib toolchain, regardless of --nacl_glibc. We clone |
2430 # it from nacl_env here, before too much other cruft has been added. | 2478 # it from nacl_env here, before too much other cruft has been added. |
2431 # We do some more magic below to instantiate it the way we need it. | 2479 # We do some more magic below to instantiate it the way we need it. |
2432 nacl_irt_env = nacl_env.Clone( | 2480 nacl_irt_env = nacl_env.Clone( |
2433 BUILD_TYPE = 'nacl_irt', | 2481 BUILD_TYPE = 'nacl_irt', |
2434 BUILD_TYPE_DESCRIPTION = 'NaCl IRT build', | 2482 BUILD_TYPE_DESCRIPTION = 'NaCl IRT build', |
2435 NACL_BUILD_FAMILY = 'UNTRUSTED_IRT', | 2483 NACL_BUILD_FAMILY = 'UNTRUSTED_IRT', |
2436 ) | 2484 ) |
2437 | 2485 |
2486 # This needs to happen pretty early, because it affects any concretized | |
2487 # directory names. | |
2488 def AddTargetRootSuffix(env, bit_name, suffix): | |
2489 """Add a suffix to the subdirectory of scons-out that we use. This | |
2490 usually does not affect correctness, but saves us triggering a | |
2491 rebuild whenever we add or remove a build option such as --nacl_glibc. | |
2492 """ | |
2493 if env.Bit(bit_name): | |
2494 pathname = '%s-%s' % (env.subst('${TARGET_ROOT}'), suffix) | |
2495 env.Replace(TARGET_ROOT=pathname) | |
2496 | |
2497 AddTargetRootSuffix(nacl_env, 'bitcode', 'pnacl') | |
2498 AddTargetRootSuffix(nacl_env, 'nacl_pic', 'pic') | |
2499 AddTargetRootSuffix(nacl_env, 'use_sandboxed_translator', 'sbtc') | |
2500 AddTargetRootSuffix(nacl_env, 'nacl_glibc', 'glibc') | |
2501 | |
2438 if nacl_env.Bit('irt'): | 2502 if nacl_env.Bit('irt'): |
2439 nacl_env.Replace(PPAPI_LIBS=['ppapi']) | 2503 nacl_env.Replace(PPAPI_LIBS=['ppapi']) |
2440 # Even non-PPAPI nexes need this for IRT-compatible linking. | 2504 # Even non-PPAPI nexes need this for IRT-compatible linking. |
2441 # We don't just make them link with ${PPAPI_LIBS} because in | 2505 # We don't just make them link with ${PPAPI_LIBS} because in |
2442 # the non-IRT case under dynamic linking, that tries to link | 2506 # the non-IRT case under dynamic linking, that tries to link |
2443 # in libppruntime.so with its undefined symbols and fails | 2507 # in libppruntime.so with its undefined symbols and fails |
2444 # for nexes that aren't actually PPAPI users. | 2508 # for nexes that aren't actually PPAPI users. |
2445 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=nacl_env['PPAPI_LIBS']) | 2509 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=nacl_env['PPAPI_LIBS']) |
2446 else: | 2510 else: |
2447 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=[]) | 2511 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=[]) |
(...skipping 15 matching lines...) Expand all Loading... | |
2463 if (nacl_env.Bit('nacl_glibc') and | 2527 if (nacl_env.Bit('nacl_glibc') and |
2464 nacl_env.Bit('nacl_static_link') and | 2528 nacl_env.Bit('nacl_static_link') and |
2465 not nacl_env.Bit('bitcode')): | 2529 not nacl_env.Bit('bitcode')): |
2466 # The "-lc" is necessary because libgcc_eh depends on libc but for | 2530 # The "-lc" is necessary because libgcc_eh depends on libc but for |
2467 # some reason nacl-gcc is not linking with "--start-group/--end-group". | 2531 # some reason nacl-gcc is not linking with "--start-group/--end-group". |
2468 nacl_env.Append(LINKFLAGS=[ | 2532 nacl_env.Append(LINKFLAGS=[ |
2469 '-static', | 2533 '-static', |
2470 '-T', 'ldscripts/%s.x.static' % GetLinkerScriptBaseName(nacl_env), | 2534 '-T', 'ldscripts/%s.x.static' % GetLinkerScriptBaseName(nacl_env), |
2471 '-lc']) | 2535 '-lc']) |
2472 | 2536 |
2473 def AddTargetRootSuffix(env, bit_name, suffix): | |
2474 """Add a suffix to the subdirectory of scons-out that we use. This | |
2475 usually does not affect correctness, but saves us triggering a | |
2476 rebuild whenever we add or remove a build option such as --nacl_glibc. | |
2477 """ | |
2478 if env.Bit(bit_name): | |
2479 pathname = '%s-%s' % (env.subst('${TARGET_ROOT}'), suffix) | |
2480 env.Replace(TARGET_ROOT=pathname) | |
2481 | |
2482 AddTargetRootSuffix(nacl_env, 'bitcode', 'pnacl') | |
2483 AddTargetRootSuffix(nacl_env, 'nacl_pic', 'pic') | |
2484 AddTargetRootSuffix(nacl_env, 'use_sandboxed_translator', 'sbtc') | |
2485 AddTargetRootSuffix(nacl_env, 'nacl_glibc', 'glibc') | |
2486 | |
2487 if nacl_env.Bit('running_on_valgrind'): | 2537 if nacl_env.Bit('running_on_valgrind'): |
2488 nacl_env.Append(CCFLAGS = ['-g', '-Wno-overlength-strings', | 2538 nacl_env.Append(CCFLAGS = ['-g', '-Wno-overlength-strings', |
2489 '-fno-optimize-sibling-calls'], | 2539 '-fno-optimize-sibling-calls'], |
2490 CPPDEFINES = [['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | 2540 CPPDEFINES = [['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], |
2491 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ]]) | 2541 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ]]) |
2492 # With GLibC, libvalgrind.so is preloaded at runtime. | 2542 # With GLibC, libvalgrind.so is preloaded at runtime. |
2493 # With Newlib, it has to be linked in. | 2543 # With Newlib, it has to be linked in. |
2494 if not nacl_env.Bit('nacl_glibc'): | 2544 if not nacl_env.Bit('nacl_glibc'): |
2495 nacl_env.Append(LINKFLAGS = ['-Wl,-u,have_nacl_valgrind_interceptors'], | 2545 nacl_env.Append(LINKFLAGS = ['-Wl,-u,have_nacl_valgrind_interceptors'], |
2496 LIBS = ['valgrind']) | 2546 LIBS = ['valgrind']) |
2497 | 2547 |
2498 environment_list.append(nacl_env) | 2548 environment_list.append(nacl_env) |
2499 | 2549 |
2550 if not nacl_env.Bit('nacl_glibc'): | |
2551 # These are all specific to nacl-newlib so we do not include them | |
2552 # when building against nacl-glibc. The functionality of | |
2553 # pthread/startup/stubs/nosys is provided by glibc. The valgrind | |
2554 # code currently assumes nc_threads. | |
2555 nacl_env.Append( | |
2556 BUILD_SCONSCRIPTS = [ | |
2557 #### ALPHABETICALLY SORTED #### | |
2558 'src/untrusted/pthread/nacl.scons', | |
2559 'src/untrusted/startup/nacl.scons', | |
2560 'src/untrusted/stubs/nacl.scons', | |
2561 'src/untrusted/nosys/nacl.scons', | |
2562 #### ALPHABETICALLY SORTED #### | |
2563 ]) | |
2564 | |
2500 nacl_env.Append( | 2565 nacl_env.Append( |
2501 BUILD_SCONSCRIPTS = [ | 2566 BUILD_SCONSCRIPTS = [ |
2502 #### ALPHABETICALLY SORTED #### | 2567 #### ALPHABETICALLY SORTED #### |
2568 'src/include/nacl/nacl.scons', | |
2569 'src/shared/gio/nacl.scons', | |
2570 'src/shared/imc/nacl.scons', | |
2571 'src/shared/platform/nacl.scons', | |
2572 'src/shared/ppapi/nacl.scons', | |
2573 'src/shared/ppapi_proxy/nacl.scons', | |
2574 'src/shared/srpc/nacl.scons', | |
2503 'src/tools/posix_over_imc/nacl.scons', | 2575 'src/tools/posix_over_imc/nacl.scons', |
2504 'src/trusted/service_runtime/nacl.scons', | 2576 'src/trusted/service_runtime/nacl.scons', |
2505 'src/trusted/validator_x86/nacl.scons', | 2577 'src/trusted/validator_x86/nacl.scons', |
2578 'src/untrusted/ehsupport/nacl.scons', | |
2579 'src/untrusted/irt_stub/nacl.scons', | |
2580 'src/untrusted/nacl/nacl.scons', | |
2581 'src/untrusted/ppapi/nacl.scons', | |
2582 'src/untrusted/valgrind/nacl.scons', | |
2506 'tests/app_lib/nacl.scons', | 2583 'tests/app_lib/nacl.scons', |
2507 'tests/autoloader/nacl.scons', | 2584 'tests/autoloader/nacl.scons', |
2508 'tests/barebones/nacl.scons', | 2585 'tests/barebones/nacl.scons', |
2509 'tests/blob_library_loading/nacl.scons', | 2586 'tests/blob_library_loading/nacl.scons', |
2510 'tests/browser_dynamic_library/nacl.scons', | 2587 'tests/browser_dynamic_library/nacl.scons', |
2511 'tests/browser_startup_time/nacl.scons', | 2588 'tests/browser_startup_time/nacl.scons', |
2512 'tests/bundle_size/nacl.scons', | 2589 'tests/bundle_size/nacl.scons', |
2513 'tests/callingconv/nacl.scons', | 2590 'tests/callingconv/nacl.scons', |
2514 'tests/chrome_extension/nacl.scons', | 2591 'tests/chrome_extension/nacl.scons', |
2515 'tests/computed_gotos/nacl.scons', | 2592 'tests/computed_gotos/nacl.scons', |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2547 'tests/nanosleep/nacl.scons', | 2624 'tests/nanosleep/nacl.scons', |
2548 'tests/native_worker/nacl.scons', | 2625 'tests/native_worker/nacl.scons', |
2549 'tests/noop/nacl.scons', | 2626 'tests/noop/nacl.scons', |
2550 'tests/nrd_xfer/nacl.scons', | 2627 'tests/nrd_xfer/nacl.scons', |
2551 'tests/nthread_nice/nacl.scons', | 2628 'tests/nthread_nice/nacl.scons', |
2552 'tests/null/nacl.scons', | 2629 'tests/null/nacl.scons', |
2553 'tests/nullptr/nacl.scons', | 2630 'tests/nullptr/nacl.scons', |
2554 'tests/plugin_async_messaging/nacl.scons', | 2631 'tests/plugin_async_messaging/nacl.scons', |
2555 'tests/pnacl_abi/nacl.scons', | 2632 'tests/pnacl_abi/nacl.scons', |
2556 'tests/pnacl_client_translator/nacl.scons', | 2633 'tests/pnacl_client_translator/nacl.scons', |
2634 'tests/ppapi/nacl.scons', | |
2557 'tests/ppapi_browser/bad/nacl.scons', | 2635 'tests/ppapi_browser/bad/nacl.scons', |
2558 'tests/ppapi_browser/manifest/nacl.scons', | 2636 'tests/ppapi_browser/manifest/nacl.scons', |
2559 'tests/ppapi_browser/ppb_graphics2d/nacl.scons', | 2637 'tests/ppapi_browser/ppb_graphics2d/nacl.scons', |
2560 'tests/ppapi_browser/progress_events/nacl.scons', | 2638 'tests/ppapi_browser/progress_events/nacl.scons', |
2561 'tests/ppapi_core/nacl.scons', | 2639 'tests/ppapi_core/nacl.scons', |
2562 'tests/ppapi_example_2d/nacl.scons', | 2640 'tests/ppapi_example_2d/nacl.scons', |
2563 'tests/ppapi_example_audio/nacl.scons', | 2641 'tests/ppapi_example_audio/nacl.scons', |
2564 'tests/ppapi_example_font/nacl.scons', | 2642 'tests/ppapi_example_font/nacl.scons', |
2565 'tests/ppapi_example_gles2/nacl.scons', | 2643 'tests/ppapi_example_gles2/nacl.scons', |
2566 'tests/ppapi_example_post_message/nacl.scons', | 2644 'tests/ppapi_example_post_message/nacl.scons', |
2567 'tests/ppapi_file_system/nacl.scons', | 2645 'tests/ppapi_file_system/nacl.scons', |
2568 'tests/ppapi_geturl/nacl.scons', | 2646 'tests/ppapi_geturl/nacl.scons', |
2569 'tests/ppapi_gles_book/nacl.scons', | 2647 'tests/ppapi_gles_book/nacl.scons', |
2570 'tests/ppapi_messaging/nacl.scons', | 2648 'tests/ppapi_messaging/nacl.scons', |
2571 'tests/ppapi_proxy/nacl.scons', | 2649 'tests/ppapi_proxy/nacl.scons', |
2572 'tests/ppapi_simple_tests/nacl.scons', | 2650 'tests/ppapi_simple_tests/nacl.scons', |
2573 'tests/ppapi_test_example/nacl.scons', | 2651 'tests/ppapi_test_example/nacl.scons', |
2574 'tests/ppapi_test_lib/nacl.scons', | 2652 'tests/ppapi_test_lib/nacl.scons', |
2575 'tests/ppapi_tests/nacl.scons', | 2653 'tests/ppapi_tests/nacl.scons', |
2576 'tests/ppapi/nacl.scons', | |
2577 'tests/pyauto_nacl/nacl.scons', | 2654 'tests/pyauto_nacl/nacl.scons', |
2578 'tests/redir/nacl.scons', | 2655 'tests/redir/nacl.scons', |
2579 'tests/rodata_not_writable/nacl.scons', | 2656 'tests/rodata_not_writable/nacl.scons', |
2580 'tests/signal_handler/nacl.scons', | 2657 'tests/signal_handler/nacl.scons', |
2581 'tests/srpc/nacl.scons', | 2658 'tests/srpc/nacl.scons', |
2582 'tests/srpc_hw/nacl.scons', | 2659 'tests/srpc_hw/nacl.scons', |
2583 'tests/srpc_message/nacl.scons', | 2660 'tests/srpc_message/nacl.scons', |
2584 'tests/stack_alignment/nacl.scons', | 2661 'tests/stack_alignment/nacl.scons', |
2585 'tests/startup_message/nacl.scons', | 2662 'tests/startup_message/nacl.scons', |
2586 'tests/stubout_mode/nacl.scons', | 2663 'tests/stubout_mode/nacl.scons', |
2587 'tests/sysbasic/nacl.scons', | 2664 'tests/sysbasic/nacl.scons', |
2665 'tests/syscall_return_sandboxing/nacl.scons', | |
2588 'tests/syscalls/nacl.scons', | 2666 'tests/syscalls/nacl.scons', |
2589 'tests/syscall_return_sandboxing/nacl.scons', | |
2590 'tests/threads/nacl.scons', | 2667 'tests/threads/nacl.scons', |
2591 'tests/time/nacl.scons', | 2668 'tests/time/nacl.scons', |
2592 'tests/tls/nacl.scons', | 2669 'tests/tls/nacl.scons', |
2593 'tests/toolchain/nacl.scons', | 2670 'tests/toolchain/nacl.scons', |
2594 'tests/unittests/shared/imc/nacl.scons', | 2671 'tests/unittests/shared/imc/nacl.scons', |
2595 'tests/unittests/shared/srpc/nacl.scons', | 2672 'tests/unittests/shared/srpc/nacl.scons', |
2596 'tests/untrusted_check/nacl.scons', | 2673 'tests/untrusted_check/nacl.scons', |
2597 #### ALPHABETICALLY SORTED #### | 2674 #### ALPHABETICALLY SORTED #### |
2598 ]) | 2675 ]) |
2599 | 2676 |
2600 nacl_env.Append( | 2677 nacl_env.Append( |
2601 BUILD_SCONSCRIPTS = [ | 2678 BUILD_SCONSCRIPTS = [ |
2602 'tools/tests/nacl.scons', | 2679 'tools/tests/nacl.scons', |
2603 ]) | 2680 ]) |
2604 | 2681 |
2605 # ---------------------------------------------------------- | 2682 # ---------------------------------------------------------- |
2606 # Possibly install an sdk by downloading it | 2683 # Possibly install an sdk by downloading it |
2607 # ---------------------------------------------------------- | 2684 # ---------------------------------------------------------- |
2608 # TODO: explore using a less heavy weight mechanism | 2685 # TODO: explore using a less heavy weight mechanism |
2609 # NOTE: this uses stuff from: site_scons/site_tools/naclsdk.py | 2686 # NOTE: this uses stuff from: site_scons/site_tools/naclsdk.py |
2610 import SCons.Script | 2687 import SCons.Script |
2611 | 2688 |
2612 SCons.Script.AddOption('--download', | 2689 SCons.Script.AddOption('--download', |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2647 n = env.Replicate(path, nodes) | 2724 n = env.Replicate(path, nodes) |
2648 env.Alias('prebuilt_binaries_update', n) | 2725 env.Alias('prebuilt_binaries_update', n) |
2649 return n | 2726 return n |
2650 | 2727 |
2651 nacl_env.AddMethod(AddPrebuiltBinaryToRepository) | 2728 nacl_env.AddMethod(AddPrebuiltBinaryToRepository) |
2652 # ---------------------------------------------------------- | 2729 # ---------------------------------------------------------- |
2653 # We force this into a separate env so that the tests in nacl_env | 2730 # We force this into a separate env so that the tests in nacl_env |
2654 # have NO access to any libraries build here but need to link them | 2731 # have NO access to any libraries build here but need to link them |
2655 # from the sdk libdir | 2732 # from the sdk libdir |
2656 # ---------------------------------------------------------- | 2733 # ---------------------------------------------------------- |
2657 nacl_extra_sdk_env = pre_base_env.Clone( | 2734 nacl_extra_sdk_env = nacl_common_env.Clone( |
2658 tools = ['naclsdk'], | |
2659 BUILD_TYPE = 'nacl_extra_sdk', | 2735 BUILD_TYPE = 'nacl_extra_sdk', |
2660 BUILD_TYPE_DESCRIPTION = 'NaCl SDK extra library build', | 2736 BUILD_TYPE_DESCRIPTION = 'NaCl SDK extra library build', |
2661 NACL_BUILD_FAMILY = 'UNTRUSTED', | |
2662 IRT_DATA_REGION_START = nacl_env['IRT_DATA_REGION_START'], | |
2663 # ${SOURCE_ROOT} for #include <ppapi/...> | |
2664 # ${SOURCE_ROOT}/gpu for #include <GLES2/...>" | |
2665 CPPPATH = ['${SOURCE_ROOT}', '${SOURCE_ROOT}/gpu'], | |
2666 CPPDEFINES = [ | |
2667 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
2668 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
2669 ['NACL_BLOCK_SHIFT', '5' ], | |
2670 ['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | |
2671 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ], | |
2672 # This ensures that UINT32_MAX gets defined. | |
2673 ['__STDC_LIMIT_MACROS', '1'], | |
2674 # This ensures that PRId64 etc. get defined. | |
2675 ['__STDC_FORMAT_MACROS', '1'], | |
2676 ], | |
2677 ARFLAGS = 'rc' | |
2678 ) | 2737 ) |
2679 | 2738 |
2680 AddTargetRootSuffix(nacl_extra_sdk_env, 'bitcode', 'pnacl') | 2739 AddTargetRootSuffix(nacl_extra_sdk_env, 'bitcode', 'pnacl') |
2681 AddTargetRootSuffix(nacl_extra_sdk_env, 'nacl_glibc', 'glibc') | 2740 AddTargetRootSuffix(nacl_extra_sdk_env, 'nacl_glibc', 'glibc') |
2682 | 2741 |
2683 # TODO(robertm): consider moving some of these flags to the naclsdk tool | 2742 # TODO(robertm): consider moving some of these flags to the naclsdk tool |
2684 nacl_extra_sdk_env.Append(CCFLAGS=['-Wall', | 2743 nacl_extra_sdk_env.Append(CCFLAGS=['-Wall', |
2685 '-fdiagnostics-show-option', | 2744 '-fdiagnostics-show-option', |
2686 '-pedantic'] + | 2745 '-pedantic'] + |
2687 werror_flags + | 2746 werror_flags + |
(...skipping 20 matching lines...) Expand all Loading... | |
2708 # class constructors | 2767 # class constructors |
2709 if nacl_extra_sdk_env.Bit('target_arm'): | 2768 if nacl_extra_sdk_env.Bit('target_arm'): |
2710 nacl_extra_sdk_env.FilterOut(CCFLAGS = ['-Werror']) | 2769 nacl_extra_sdk_env.FilterOut(CCFLAGS = ['-Werror']) |
2711 nacl_extra_sdk_env.Append(CFLAGS = werror_flags) | 2770 nacl_extra_sdk_env.Append(CFLAGS = werror_flags) |
2712 | 2771 |
2713 # TODO(pdox): Remove this as soon as build_config.h can be | 2772 # TODO(pdox): Remove this as soon as build_config.h can be |
2714 # changed to accept __pnacl__. | 2773 # changed to accept __pnacl__. |
2715 if nacl_extra_sdk_env.Bit('bitcode'): | 2774 if nacl_extra_sdk_env.Bit('bitcode'): |
2716 nacl_extra_sdk_env.AddBiasForPNaCl() | 2775 nacl_extra_sdk_env.AddBiasForPNaCl() |
2717 | 2776 |
2718 if nacl_extra_sdk_env.Bit('host_windows'): | |
2719 # NOTE: This is needed because Windows builds are case-insensitive. | |
2720 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2721 nacl_extra_sdk_env.Replace(ASCOM = '${CCCOM}') | |
2722 | |
2723 if nacl_env.Bit('host_windows'): | |
2724 # NOTE: This is needed because Windows builds are case-insensitive. | |
2725 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2726 nacl_env.Replace(ASCOM = '${CCCOM}') | |
2727 | |
2728 | 2777 |
2729 def NaClSdkLibrary(env, lib_name, *args, **kwargs): | 2778 def NaClSdkLibrary(env, lib_name, *args, **kwargs): |
2730 env.ComponentLibrary(lib_name, *args, **kwargs) | 2779 env.ComponentLibrary(lib_name, *args, **kwargs) |
2731 if not env.Bit('nacl_disable_shared'): | 2780 if not env.Bit('nacl_disable_shared'): |
2732 env_shared = env.Clone(COMPONENT_STATIC=False) | 2781 env_shared = env.Clone(COMPONENT_STATIC=False) |
2733 soname = SCons.Util.adjustixes(lib_name, 'lib', '.so') | 2782 soname = SCons.Util.adjustixes(lib_name, 'lib', '.so') |
2734 env_shared.AppendUnique(SHLINKFLAGS=['-Wl,-soname,%s' % (soname)]) | 2783 env_shared.AppendUnique(SHLINKFLAGS=['-Wl,-soname,%s' % (soname)]) |
2735 env_shared.ComponentLibrary(lib_name, *args, **kwargs) | 2784 env_shared.ComponentLibrary(lib_name, *args, **kwargs) |
2736 | 2785 |
2737 nacl_extra_sdk_env.AddMethod(NaClSdkLibrary) | 2786 nacl_extra_sdk_env.AddMethod(NaClSdkLibrary) |
2787 nacl_env.AddMethod(NaClSdkLibrary) | |
2738 | 2788 |
2739 | 2789 |
2740 # --------------------------------------------------------------------- | 2790 # --------------------------------------------------------------------- |
2741 # Special environment for untrusted test binaries that use raw syscalls | 2791 # Special environment for untrusted test binaries that use raw syscalls |
2742 # --------------------------------------------------------------------- | 2792 # --------------------------------------------------------------------- |
2743 def RawSyscallObjects(env, sources): | 2793 def RawSyscallObjects(env, sources): |
2744 raw_syscall_env = env.Clone() | 2794 raw_syscall_env = env.Clone() |
2745 raw_syscall_env.Append( | 2795 raw_syscall_env.Append( |
2746 CPPDEFINES = [ | 2796 CPPDEFINES = [ |
2747 ['USE_RAW_SYSCALLS', '1'], | 2797 ['USE_RAW_SYSCALLS', '1'], |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2825 nacl_extra_sdk_env.Alias('extra_sdk_update', [libs, libs_platform]) | 2875 nacl_extra_sdk_env.Alias('extra_sdk_update', [libs, libs_platform]) |
2826 | 2876 |
2827 | 2877 |
2828 # Add a header file to the toolchain. By default, Native Client-specific | 2878 # Add a header file to the toolchain. By default, Native Client-specific |
2829 # headers go under nacl/, but there are non-specific headers, such as | 2879 # headers go under nacl/, but there are non-specific headers, such as |
2830 # the OpenGLES2 headers, that go under their own subdir. | 2880 # the OpenGLES2 headers, that go under their own subdir. |
2831 def AddHeaderToSdk(env, nodes, subdir = 'nacl/'): | 2881 def AddHeaderToSdk(env, nodes, subdir = 'nacl/'): |
2832 dir = ARGUMENTS.get('extra_sdk_include_destination') | 2882 dir = ARGUMENTS.get('extra_sdk_include_destination') |
2833 if not dir: | 2883 if not dir: |
2834 dir = '${NACL_SDK_INCLUDE}' | 2884 dir = '${NACL_SDK_INCLUDE}' |
2835 | 2885 if subdir is not None: |
2836 n = env.Replicate(dir + '/' + subdir, nodes) | 2886 dir += '/' + subdir |
2887 n = env.Replicate(dir, nodes) | |
2837 env.Alias('extra_sdk_update_header', n) | 2888 env.Alias('extra_sdk_update_header', n) |
2838 return n | 2889 return n |
2839 | 2890 |
2840 nacl_extra_sdk_env.AddMethod(AddHeaderToSdk) | 2891 nacl_extra_sdk_env.AddMethod(AddHeaderToSdk) |
2841 | 2892 |
2842 | 2893 |
2843 def AddLibraryToSdkHelper(env, nodes, is_lib, is_platform): | 2894 def AddLibraryToSdkHelper(env, nodes, is_lib, is_platform): |
2844 """"Helper function to install libs/objs into the toolchain | 2895 """"Helper function to install libs/objs into the toolchain |
2845 and associate the action with the extra_sdk_update. | 2896 and associate the action with the extra_sdk_update. |
2846 | 2897 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2895 # so it regenerates the tool paths right. | 2946 # so it regenerates the tool paths right. |
2896 # TODO(mcgrathr,bradnelson): could get cleaner if naclsdk.py got folded back in. | 2947 # TODO(mcgrathr,bradnelson): could get cleaner if naclsdk.py got folded back in. |
2897 nacl_irt_env.ClearBits('nacl_glibc') | 2948 nacl_irt_env.ClearBits('nacl_glibc') |
2898 nacl_irt_env.ClearBits('nacl_pic') | 2949 nacl_irt_env.ClearBits('nacl_pic') |
2899 if not nacl_irt_env.Bit('target_arm'): | 2950 if not nacl_irt_env.Bit('target_arm'): |
2900 nacl_irt_env.ClearBits('bitcode') | 2951 nacl_irt_env.ClearBits('bitcode') |
2901 nacl_irt_env.Tool('naclsdk') | 2952 nacl_irt_env.Tool('naclsdk') |
2902 # Make it find the libraries it builds, rather than the SDK ones. | 2953 # Make it find the libraries it builds, rather than the SDK ones. |
2903 nacl_irt_env.Replace(LIBPATH='${LIB_DIR}') | 2954 nacl_irt_env.Replace(LIBPATH='${LIB_DIR}') |
2904 | 2955 |
2905 AddTargetRootSuffix(nacl_irt_env, 'bitcode', 'pnacl') | |
2906 AddTargetRootSuffix(nacl_irt_env, 'nacl_pic', 'pic') | |
2907 if nacl_irt_env.Bit('bitcode'): | 2956 if nacl_irt_env.Bit('bitcode'): |
2908 nacl_irt_env.AddBiasForPNaCl() | 2957 nacl_irt_env.AddBiasForPNaCl() |
2909 | 2958 |
2910 # We have to stub out various methods that are only defined in | 2959 # We have to stub out various methods that are only defined in |
2911 # nacl_extra_sdk_env, because we doubly use these nacl.scons files | 2960 # nacl_extra_sdk_env, because we doubly use these nacl.scons files |
2912 # in nacl_irt_env. | 2961 # in nacl_irt_env. |
2913 # TODO(mcgrathr): Remove these when nacl_extra_sdk_env is removed. | 2962 # TODO(mcgrathr): Remove these when nacl_extra_sdk_env is removed. |
2914 def IrtAddLibraryToSdk(env, nodes, is_platform=False): | 2963 def AddLibraryDummy(env, nodes, is_platform=False): |
2915 pass | 2964 return [env.File('${LIB_DIR}/%s.a' % x) for x in nodes] |
2916 nacl_irt_env.AddMethod(IrtAddLibraryToSdk, 'AddLibraryToSdk') | 2965 for env in [nacl_env, nacl_irt_env]: |
Nick Bray
2011/06/27 19:52:27
Be consistent in your use of loops. I'd unroll th
| |
2917 nacl_irt_env.AddMethod(IrtAddLibraryToSdk, 'AddObjectToSdk') | 2966 env.AddMethod(AddLibraryDummy, 'AddLibraryToSdk') |
2967 | |
2968 def AddObjectInternal(env, nodes, is_platform=False): | |
2969 return env.Replicate('${LIB_DIR}', nodes) | |
2970 nacl_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | |
2971 nacl_irt_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | |
2918 | 2972 |
2919 def IrtNaClSdkLibrary(env, lib_name, *args, **kwargs): | 2973 def IrtNaClSdkLibrary(env, lib_name, *args, **kwargs): |
2920 env.ComponentLibrary(lib_name, *args, **kwargs) | 2974 env.ComponentLibrary(lib_name, *args, **kwargs) |
2921 nacl_irt_env.AddMethod(IrtNaClSdkLibrary, 'NaClSdkLibrary') | 2975 nacl_irt_env.AddMethod(IrtNaClSdkLibrary, 'NaClSdkLibrary') |
2922 | 2976 |
2923 def IrtAddHeaderToSdk(env, nodes, subdir = 'nacl/'): | 2977 # Populate the internal include directory when AddHeaderToSdk |
2924 pass | 2978 # is used inside nacl_env rather than nacl_extra_sdk_env. |
2925 nacl_irt_env.AddMethod(IrtAddHeaderToSdk, 'AddHeaderToSdk') | 2979 def AddHeaderInternal(env, nodes, subdir='nacl'): |
2980 dir = '${INCLUDE_DIR}' | |
2981 if subdir is not None: | |
2982 dir += '/' + subdir | |
2983 n = env.Replicate(dir, nodes) | |
2984 return n | |
2985 | |
2986 nacl_env.AddMethod(AddHeaderInternal, 'AddHeaderToSdk') | |
2987 nacl_irt_env.AddMethod(AddHeaderInternal, 'AddHeaderToSdk') | |
2988 | |
2989 # We want to do this for nacl_env when not under --nacl_glibc, | |
2990 # but for nacl_irt_env whether or not under --nacl_glibc, so | |
2991 # we do it separately for each after making nacl_irt_env. | |
Nick Bray
2011/06/27 19:52:27
This comment is unclear, it seems you're using the
| |
2992 def AddImplicitLibs(env): | |
2993 if not env.Bit('nacl_glibc'): | |
2994 # These are automatically linked in by the compiler, either directly | |
2995 # or via the linker script that is -lc. In the non-glibc build, we | |
2996 # are the ones providing these files, so we need dependencies. | |
2997 # The ComponentProgram method (site_scons/site_tools/component_builders.py) | |
2998 # adds dependencies on env['IMPLICIT_LIBS'] if that's set. | |
2999 implicit_libs = ['crt1.o', 'libnacl.a', 'libcrt_platform.a'] | |
3000 if not nacl_env.Bit('bitcode'): | |
3001 implicit_libs += ['crti.o', 'crtn.o'] | |
3002 env['IMPLICIT_LIBS'] = ['${LIB_DIR}/%s' % file for file in implicit_libs] | |
3003 # The -B<dir>/ flag is necessary to tell gcc to look for crt[1in].o there. | |
3004 env.Prepend(LINKFLAGS=['-B${LIB_DIR}/']) | |
3005 | |
3006 AddImplicitLibs(nacl_env) | |
3007 AddImplicitLibs(nacl_irt_env) | |
2926 | 3008 |
2927 # Give the environment for building the IRT and its libraries | 3009 # Give the environment for building the IRT and its libraries |
2928 # the -Ds used for building those libraries for the SDK. | 3010 # the -Ds used for building those libraries for the SDK. |
2929 # TODO(mcgrathr,bradnelson): clean up when nacl_extra_sdk_env goes away. | 3011 # TODO(mcgrathr,bradnelson): clean up when nacl_extra_sdk_env goes away. |
2930 # | 3012 # |
2931 # Since we will use a locally-built libpthread rather than the | 3013 # Since we will use a locally-built libpthread rather than the |
2932 # one from the toolchain, find its header files in the source | 3014 # one from the toolchain, find its header files in the source |
2933 # rather than using the ones installed in the toolchain. | 3015 # rather than using the ones installed in the toolchain. |
2934 nacl_irt_env.AppendUnique(CPPDEFINES = nacl_extra_sdk_env['CPPDEFINES'], | 3016 nacl_irt_env.AppendUnique(CPPDEFINES = nacl_extra_sdk_env['CPPDEFINES'], |
2935 CPPPATH = ['${MAIN_DIR}/src/untrusted/pthread']) | 3017 CPPPATH = ['${MAIN_DIR}/src/untrusted/pthread']) |
2936 | 3018 |
2937 # TODO(mcgrathr): nacl, crt_platform are implicitly linked in from toolchain, | 3019 # TODO(mcgrathr): nacl, crt_platform are implicitly linked in from toolchain, |
2938 # scons does not know about the dependencies. We may be building all of | 3020 # scons does not know about the dependencies. We may be building all of |
2939 # src/untrusted/nacl but only actually getting libimc_syscalls.a from there. | 3021 # src/untrusted/nacl but only actually getting libimc_syscalls.a from there. |
2940 nacl_irt_env.Append( | 3022 nacl_irt_env.Append( |
2941 BUILD_SCONSCRIPTS = [ | 3023 BUILD_SCONSCRIPTS = [ |
3024 'src/include/nacl/nacl.scons', | |
2942 'src/shared/gio/nacl.scons', | 3025 'src/shared/gio/nacl.scons', |
2943 'src/shared/platform/nacl.scons', | 3026 'src/shared/platform/nacl.scons', |
2944 'src/shared/ppapi_proxy/nacl.scons', | 3027 'src/shared/ppapi_proxy/nacl.scons', |
2945 'src/shared/srpc/nacl.scons', | 3028 'src/shared/srpc/nacl.scons', |
2946 'src/untrusted/irt/nacl.scons', | 3029 'src/untrusted/irt/nacl.scons', |
2947 'src/untrusted/nacl/nacl.scons', | 3030 'src/untrusted/nacl/nacl.scons', |
2948 'src/untrusted/pthread/nacl.scons', | 3031 'src/untrusted/pthread/nacl.scons', |
3032 'src/untrusted/stubs/nacl.scons', | |
2949 ]) | 3033 ]) |
2950 | 3034 |
2951 environment_list.append(nacl_irt_env) | 3035 environment_list.append(nacl_irt_env) |
2952 | 3036 |
2953 windows_coverage_env = windows_env.Clone( | 3037 windows_coverage_env = windows_env.Clone( |
2954 tools = ['code_coverage'], | 3038 tools = ['code_coverage'], |
2955 BUILD_TYPE = 'coverage-win', | 3039 BUILD_TYPE = 'coverage-win', |
2956 BUILD_TYPE_DESCRIPTION = 'Windows code coverage build', | 3040 BUILD_TYPE_DESCRIPTION = 'Windows code coverage build', |
2957 # TODO(bradnelson): switch nacl to common testing process so this won't be | 3041 # TODO(bradnelson): switch nacl to common testing process so this won't be |
2958 # needed. | 3042 # needed. |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3154 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) | 3238 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) |
3155 | 3239 |
3156 if BROKEN_TEST_COUNT > 0: | 3240 if BROKEN_TEST_COUNT > 0: |
3157 msg = "There are %d broken tests." % BROKEN_TEST_COUNT | 3241 msg = "There are %d broken tests." % BROKEN_TEST_COUNT |
3158 if GetOption('brief_comstr'): | 3242 if GetOption('brief_comstr'): |
3159 msg += " Add --verbose to the command line for more information." | 3243 msg += " Add --verbose to the command line for more information." |
3160 print msg | 3244 print msg |
3161 | 3245 |
3162 # separate warnings from actual build output | 3246 # separate warnings from actual build output |
3163 Banner('B U I L D - O U T P U T:') | 3247 Banner('B U I L D - O U T P U T:') |
OLD | NEW |