|  | import os | 
|  | import subprocess | 
|  | import sys | 
|  |  | 
|  | def GetObjcopyCmd(target): | 
|  | """Return a suitable objcopy command.""" | 
|  | if target == 'mips32': | 
|  | return 'mipsel-nacl-objcopy' | 
|  | return 'arm-nacl-objcopy' | 
|  |  | 
|  | def GetObjdumpCmd(target): | 
|  | """Return a suitable objdump command.""" | 
|  | if target == 'mips32': | 
|  | return 'mipsel-nacl-objdump' | 
|  | return 'arm-nacl-objdump' | 
|  |  | 
|  | def shellcmd(command, echo=True): | 
|  | if not isinstance(command, str): | 
|  | command = ' '.join(command) | 
|  |  | 
|  | if echo: | 
|  | print >> sys.stderr, '[cmd]' | 
|  | print >> sys.stderr,  command | 
|  | print >> sys.stderr | 
|  |  | 
|  | stdout_result = subprocess.check_output(command, shell=True) | 
|  | if echo: sys.stdout.write(stdout_result) | 
|  | return stdout_result | 
|  |  | 
|  | def FindBaseNaCl(): | 
|  | """Find the base native_client/ directory.""" | 
|  | nacl = 'native_client' | 
|  | path_list = os.getcwd().split(os.sep) | 
|  | """Use the executable path if cwd does not contain 'native_client' """ | 
|  | path_list = path_list if nacl in path_list else sys.argv[0].split(os.sep) | 
|  | if nacl not in path_list: | 
|  | print "Script must be executed from within 'native_client' directory" | 
|  | exit(1) | 
|  | last_index = len(path_list) - path_list[::-1].index(nacl) | 
|  | return os.sep.join(path_list[:last_index]) | 
|  |  | 
|  | def get_sfi_string(args, sb_ret, nonsfi_ret, native_ret): | 
|  | """Return a value depending on args.sandbox and args.nonsfi.""" | 
|  | if args.sandbox: | 
|  | assert(not args.nonsfi) | 
|  | return sb_ret | 
|  | if args.nonsfi: | 
|  | return nonsfi_ret | 
|  | return native_ret |