Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: native_client_sdk/src/build_tools/build_sdk.py

Issue 176923017: [NaCl SDK] Compile for naclio for Bionic (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix bug in h_error Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium 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 """Entry point for both build and try bots. 6 """Entry point for both build and try bots.
7 7
8 This script is invoked from XXX, usually without arguments 8 This script is invoked from XXX, usually without arguments
9 to package an SDK. It automatically determines whether 9 to package an SDK. It automatically determines whether
10 this SDK is for mac, win, linux. 10 this SDK is for mac, win, linux.
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 tc_name = 'newlib' 361 tc_name = 'newlib'
362 362
363 InstallFiles(SRC_DIR, tc_dst_inc, NACL_HEADER_MAP[tc_name]) 363 InstallFiles(SRC_DIR, tc_dst_inc, NACL_HEADER_MAP[tc_name])
364 364
365 365
366 def MakeNinjaRelPath(path): 366 def MakeNinjaRelPath(path):
367 return os.path.join(os.path.relpath(OUT_DIR, SRC_DIR), path) 367 return os.path.join(os.path.relpath(OUT_DIR, SRC_DIR), path)
368 368
369 369
370 TOOLCHAIN_LIBS = { 370 TOOLCHAIN_LIBS = {
371 'bionic' : [
372 'libminidump_generator.a',
373 'libnacl.a',
374 'libnacl_dyncode.a',
375 'libnacl_exception.a',
376 'libnacl_list_mappings.a',
377 'libppapi.a',
378 'libppapi_stub.a',
379 ],
371 'newlib' : [ 380 'newlib' : [
372 'crti.o', 381 'crti.o',
373 'crtn.o', 382 'crtn.o',
374 'libminidump_generator.a', 383 'libminidump_generator.a',
375 'libnacl.a', 384 'libnacl.a',
376 'libnacl_dyncode.a', 385 'libnacl_dyncode.a',
377 'libnacl_exception.a', 386 'libnacl_exception.a',
378 'libnacl_list_mappings.a', 387 'libnacl_list_mappings.a',
379 'libnosys.a', 388 'libnosys.a',
380 'libppapi.a', 389 'libppapi.a',
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 buildbot_common.MakeDir(os.path.join(pepperdir, 'tools')) 450 buildbot_common.MakeDir(os.path.join(pepperdir, 'tools'))
442 451
443 # Add .exe extensions to all windows tools 452 # Add .exe extensions to all windows tools
444 for pair in tools_files: 453 for pair in tools_files:
445 if platform == 'win' and not pair[0].endswith('.nexe'): 454 if platform == 'win' and not pair[0].endswith('.nexe'):
446 pair[0] += '.exe' 455 pair[0] += '.exe'
447 pair[1] += '.exe' 456 pair[1] += '.exe'
448 457
449 InstallFiles(ninja_out_dir, os.path.join(pepperdir, 'tools'), tools_files) 458 InstallFiles(ninja_out_dir, os.path.join(pepperdir, 'tools'), tools_files)
450 459
460 # Add ARM binaries
461 if platform == 'linux':
462 tools_files = [
463 ['irt_core_newlib_arm.nexe', 'irt_core_arm.nexe'],
464 ['irt_core_newlib_arm.nexe', 'irt_core_arm.nexe'],
465 ['sel_ldr', 'sel_ldr_arm'],
466 ['nacl_helper_bootstrap', 'nacl_helper_bootstrap_arm']
467 ]
468 ninja_out_dir = os.path.join(OUT_DIR, build_dir + '-arm', 'Release')
469 InstallFiles(ninja_out_dir, os.path.join(pepperdir, 'tools'), tools_files)
470
451 for tc in set(toolchains) & set(['newlib', 'glibc', 'pnacl']): 471 for tc in set(toolchains) & set(['newlib', 'glibc', 'pnacl']):
452 if tc == 'pnacl': 472 if tc == 'pnacl':
453 xarches = (None,) 473 xarches = (None,)
454 else: 474 else:
455 xarches = ('arm', '32', '64') 475 xarches = ('arm', '32', '64')
456 476
457 for xarch in xarches: 477 for xarch in xarches:
458 if tc == 'glibc' and xarch == 'arm': 478 if tc == 'glibc' and xarch == 'arm':
459 continue 479 continue
460 480
461 src_dir = GetGypBuiltLib(tc, xarch) 481 src_dir = GetGypBuiltLib(tc, xarch)
462 dst_dir = GetOutputToolchainLib(pepperdir, tc, xarch) 482 dst_dir = GetOutputToolchainLib(pepperdir, tc, xarch)
463 InstallFiles(src_dir, dst_dir, TOOLCHAIN_LIBS[tc]) 483 InstallFiles(src_dir, dst_dir, TOOLCHAIN_LIBS[tc])
464 484
485 # Copy ARM newlib components to bionic
486 if tc == 'newlib' and xarch == 'arm' and 'bionic' in toolchains:
487 bionic_dir = GetOutputToolchainLib(pepperdir, 'bionic', xarch)
488 InstallFiles(src_dir, bionic_dir, TOOLCHAIN_LIBS['bionic'])
489
465 if tc != 'pnacl': 490 if tc != 'pnacl':
466 src_dir = GetGypToolchainLib(tc, xarch) 491 src_dir = GetGypToolchainLib(tc, xarch)
467 InstallFiles(src_dir, dst_dir, ['crt1.o']) 492 InstallFiles(src_dir, dst_dir, ['crt1.o'])
468 493
469 494
470 def GypNinjaBuild_NaCl(rel_out_dir): 495 def GypNinjaBuild_NaCl(rel_out_dir):
471 gyp_py = os.path.join(NACL_DIR, 'build', 'gyp_nacl') 496 gyp_py = os.path.join(NACL_DIR, 'build', 'gyp_nacl')
472 nacl_core_sdk_gyp = os.path.join(NACL_DIR, 'build', 'nacl_core_sdk.gyp') 497 nacl_core_sdk_gyp = os.path.join(NACL_DIR, 'build', 'nacl_core_sdk.gyp')
473 all_gyp = os.path.join(NACL_DIR, 'build', 'all.gyp') 498 all_gyp = os.path.join(NACL_DIR, 'build', 'all.gyp')
474 499
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 buildbot_common.BuildStep('Build GoNaCl AppEngine Projects') 908 buildbot_common.BuildStep('Build GoNaCl AppEngine Projects')
884 cmd = ['make', 'upload', 'REVISION=%s' % chrome_revision] 909 cmd = ['make', 'upload', 'REVISION=%s' % chrome_revision]
885 env = dict(os.environ) 910 env = dict(os.environ)
886 env['NACL_SDK_ROOT'] = pepperdir 911 env['NACL_SDK_ROOT'] = pepperdir
887 env['NACLPORTS_NO_ANNOTATE'] = "1" 912 env['NACLPORTS_NO_ANNOTATE'] = "1"
888 buildbot_common.Run(cmd, env=env, cwd=GONACL_APPENGINE_SRC_DIR) 913 buildbot_common.Run(cmd, env=env, cwd=GONACL_APPENGINE_SRC_DIR)
889 914
890 915
891 def main(args): 916 def main(args):
892 parser = optparse.OptionParser(description=__doc__) 917 parser = optparse.OptionParser(description=__doc__)
918 parser.add_option('--qemu', help='Add qemu for ARM.',
919 action='store_true')
893 parser.add_option('--bionic', help='Add bionic build.', 920 parser.add_option('--bionic', help='Add bionic build.',
894 action='store_true') 921 action='store_true')
895 parser.add_option('--tar', help='Force the tar step.', 922 parser.add_option('--tar', help='Force the tar step.',
896 action='store_true') 923 action='store_true')
897 parser.add_option('--archive', help='Force the archive step.', 924 parser.add_option('--archive', help='Force the archive step.',
898 action='store_true') 925 action='store_true')
899 parser.add_option('--gyp', 926 parser.add_option('--gyp',
900 help='Use gyp to build examples/libraries/Makefiles.', 927 help='Use gyp to build examples/libraries/Makefiles.',
901 action='store_true') 928 action='store_true')
902 parser.add_option('--release', help='PPAPI release version.', 929 parser.add_option('--release', help='PPAPI release version.',
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 if options.build_ports and getos.GetPlatform() == 'linux': 1015 if options.build_ports and getos.GetPlatform() == 'linux':
989 ports_tarfile = os.path.join(OUT_DIR, 'naclports.tar.bz2') 1016 ports_tarfile = os.path.join(OUT_DIR, 'naclports.tar.bz2')
990 BuildStepSyncNaClPorts() 1017 BuildStepSyncNaClPorts()
991 BuildStepBuildNaClPorts(pepper_ver, pepperdir) 1018 BuildStepBuildNaClPorts(pepper_ver, pepperdir)
992 if options.tar: 1019 if options.tar:
993 BuildStepTarNaClPorts(pepper_ver, ports_tarfile) 1020 BuildStepTarNaClPorts(pepper_ver, ports_tarfile)
994 1021
995 if options.build_app_engine and getos.GetPlatform() == 'linux': 1022 if options.build_app_engine and getos.GetPlatform() == 'linux':
996 BuildStepBuildAppEngine(pepperdir, chrome_revision) 1023 BuildStepBuildAppEngine(pepperdir, chrome_revision)
997 1024
1025 if options.qemu:
1026 qemudir = os.path.join(NACL_DIR, 'toolchain', 'linux_arm-trusted')
1027 oshelpers.Copy(['-r', qemudir, pepperdir])
1028
998 # Archive on non-trybots. 1029 # Archive on non-trybots.
999 if options.archive: 1030 if options.archive:
1000 BuildStepArchiveBundle('build', pepper_ver, chrome_revision, nacl_revision, 1031 BuildStepArchiveBundle('build', pepper_ver, chrome_revision, nacl_revision,
1001 tarfile) 1032 tarfile)
1002 if options.build_ports and getos.GetPlatform() == 'linux': 1033 if options.build_ports and getos.GetPlatform() == 'linux':
1003 BuildStepArchiveBundle('naclports', pepper_ver, chrome_revision, 1034 BuildStepArchiveBundle('naclports', pepper_ver, chrome_revision,
1004 nacl_revision, ports_tarfile) 1035 nacl_revision, ports_tarfile)
1005 BuildStepArchiveSDKTools() 1036 BuildStepArchiveSDKTools()
1006 1037
1007 return 0 1038 return 0
1008 1039
1009 1040
1010 if __name__ == '__main__': 1041 if __name__ == '__main__':
1011 try: 1042 try:
1012 sys.exit(main(sys.argv)) 1043 sys.exit(main(sys.argv))
1013 except KeyboardInterrupt: 1044 except KeyboardInterrupt:
1014 buildbot_common.ErrorExit('build_sdk: interrupted') 1045 buildbot_common.ErrorExit('build_sdk: interrupted')
1046
OLDNEW
« no previous file with comments | « native_client_sdk/src/build_tools/build_projects.py ('k') | native_client_sdk/src/build_tools/sdk_files.list » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698