(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(errexit)}) (C {(echo)} {(-n)} {(DQ ("Welcome to LLVM Linux/X86_64 -> Linux/ARM crosstool "))}) (C {(echo)} {(DQ ("builder/installer; some steps will require sudo privileges."))}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:INSTALL_ROOT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name INSTALL_ROOT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (local) (Lit_Slash /) (crosstool)} ) spids: [45 54] ) ) } spids: [43] ) ] spids: [41] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:SCRATCH_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(mktemp)} {(-d)} { (DQ (BracedVarSub token: <VSub_Name TMPDIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (tmp)} ) spids: [69 74] ) (/llvm-project.XXXXXX) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [63 77] ) } spids: [62] ) ] spids: [60] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:SRC_ROOT) op: Equal rhs: {(DQ (${ VSub_Name SCRATCH_ROOT) (/src))} spids: [81] ) ] spids: [79] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:OBJ_ROOT) op: Equal rhs: {(DQ (${ VSub_Name SCRATCH_ROOT) (/obj))} spids: [91] ) ] spids: [89] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CROSS_HOST) op: Equal rhs: {(DQ (x86_64-unknown-linux-gnu))} spids: [102] ) ] spids: [100] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CROSS_TARGET) op: Equal rhs: {(DQ (arm-none-linux-gnueabi))} spids: [109] ) ] spids: [107] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CROSS_MARCH) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name CROSS_MARCH> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(armv6)}) spids: [118 122] ) ) } spids: [116] ) ] spids: [114] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY) op: Equal rhs: {(DQ (${ VSub_Name INSTALL_ROOT) (/codesourcery))} spids: [128] ) ] spids: [126] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY_PKG_PATH) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name CODE_SOURCERY_PKG_PATH> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name HOME) (Lit_Slash /) (codesourcery)} ) spids: [140 148] ) ) } spids: [138] ) ] spids: [136] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY_HTTP) op: Equal rhs: {(DQ ("http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public"))} spids: [153] ) ] spids: [151] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY_PKG) op: Equal rhs: {(DQ (arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2))} spids: [160] ) ] spids: [158] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY_ROOT) op: Equal rhs: {(DQ (${ VSub_Name CODE_SOURCERY) (/arm-2007q3))} spids: [167] ) ] spids: [165] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CODE_SOURCERY_BIN) op: Equal rhs: {(DQ (${ VSub_Name CODE_SOURCERY_ROOT) (/bin))} spids: [177] ) ] spids: [175] ) (C {(export)} {(Lit_VarLike "PATH=") (DQ (${ VSub_Name CODE_SOURCERY_BIN) (":") (${ VSub_Name PATH))} ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CROSS_TARGET_AS) op: Equal rhs: {(DQ (${ VSub_Name CODE_SOURCERY_BIN) (/) (${ VSub_Name CROSS_TARGET) (-as))} spids: [204] ) ] spids: [202] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:CROSS_TARGET_LD) op: Equal rhs: {(DQ (${ VSub_Name CODE_SOURCERY_BIN) (/) (${ VSub_Name CROSS_TARGET) (-ld))} spids: [218] ) ] spids: [216] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:SYSROOT) op: Equal rhs: {(DQ (${ VSub_Name CODE_SOURCERY_ROOT) (/) (${ VSub_Name CROSS_TARGET) (/libc))} spids: [233] ) ] spids: [231] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_PKG_PATH) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name LLVM_PKG_PATH> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name HOME) (Lit_Slash /) (llvm-project) (Lit_Slash /) (snapshots)} ) spids: [250 260] ) ) } spids: [248] ) ] spids: [246] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_DEFAULT_REV) op: Equal rhs: {(DQ (74530))} spids: [269] ) ] spids: [267] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVMGCC_DEFAULT_REV) op: Equal rhs: {(DQ (74535))} spids: [276] ) ] spids: [274] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_PKG) op: Equal rhs: { (DQ (llvm-) (BracedVarSub token: <VSub_Name LLVM_SVN_REV> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name LLVM_DEFAULT_REV)} ) spids: [287 293] ) (.tar.bz2) ) } spids: [284] ) ] spids: [282] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_SRC_DIR) op: Equal rhs: {(DQ (${ VSub_Name SRC_ROOT) (/llvm))} spids: [299] ) ] spids: [297] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_OBJ_DIR) op: Equal rhs: {(DQ (${ VSub_Name OBJ_ROOT) (/llvm))} spids: [309] ) ] spids: [307] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_INSTALL_DIR) op: Equal rhs: {(DQ (${ VSub_Name INSTALL_ROOT) (/) (${ VSub_Name CROSS_TARGET) (/llvm))} spids: [319] ) ] spids: [317] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVMGCC_PKG) op: Equal rhs: { (DQ (llvm-gcc-4.2-) (BracedVarSub token: <VSub_Name LLVMGCC_SVN_REV> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name LLVMGCC_DEFAULT_REV)} ) spids: [337 343] ) (.tar.bz2) ) } spids: [334] ) ] spids: [332] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVMGCC_SRC_DIR) op: Equal rhs: {(DQ (${ VSub_Name SRC_ROOT) (/llvm-gcc-4.2))} spids: [349] ) ] spids: [347] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVMGCC_OBJ_DIR) op: Equal rhs: {(DQ (${ VSub_Name OBJ_ROOT) (/llvm-gcc-4.2))} spids: [359] ) ] spids: [357] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVMGCC_INSTALL_DIR) op: Equal rhs: {(DQ (${ VSub_Name INSTALL_ROOT) (/) (${ VSub_Name CROSS_TARGET) (/llvm-gcc-4.2))} spids: [369] ) ] spids: [367] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:MAKE_OPTS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name MAKE_OPTS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(-j2)}) spids: [386 390] ) ) } spids: [384] ) ] spids: [382] ) (FuncDef name: createDir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_e child:{($ VSub_Number "$1")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [426 429] ) } {(mkdir)} {(-p)} {($ VSub_Number "$1")} ) ] spids: [-1 423] ) (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id:BoolUnary_e child:{($ VSub_Number "$1")}) right: (LogicalNot child: (BoolUnary op_id:BoolUnary_d child:{($ VSub_Number "$1")}) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Number "$1") (" exists but is not a directory; exiting."))}) (C {(exit)} {(3)}) ] spids: [438 457] ) ] spids: [-1 473] ) ] spids: [407] ) spids: [403 406] ) (FuncDef name: sudoCreateDir body: (BraceGroup children: [ (C {(createDir)} {($ VSub_Number "$1")} {(sudo)}) (C {(sudo)} {(chown)} {(${ VSub_Name USER)} {($ VSub_Number "$1")}) ] spids: [482] ) spids: [478 481] ) (FuncDef name: runCommand body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:message) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [523] ) ] spids: [521] ) (C {(shift)}) (C {(echo)} {(DQ ("=> ") ($ VSub_Name "$message"))}) (C {(echo)} {(DQ ("==> Running: ") ($ VSub_Star "$*"))}) (C {($ VSub_Star "$*")}) ] spids: [518] ) spids: [514 517] ) (FuncDef name: runAndLog body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:message) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [562] ) ] spids: [560] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:log_file) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [570] ) ] spids: [568] ) (C {(shift)} {(2)}) (C {(echo)} {(DQ ("=> ") ($ VSub_Name "$message") ("; log in ") ($ VSub_Name "$log_file"))}) (C {(echo)} {(DQ ("==> Running: ") ($ VSub_Star "$*"))}) (Sentence child:(C {($ VSub_Star "$*")}) terminator:<Op_Amp "&">) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$log_file")} spids: [610] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_QMark "$?")} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Error occurred: see most recent log file for details."))}) (C {(exit)}) ] spids: [-1 628] ) ] spids: [-1 641] ) ] spids: [557] ) spids: [553 556] ) (FuncDef name: installCodeSourcery body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_d child: {(${ VSub_Name CODE_SOURCERY_ROOT)} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(sudoCreateDir)} {(${ VSub_Name CODE_SOURCERY)}) (C {(cd)} {(${ VSub_Name CODE_SOURCERY)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_e child: {(${ VSub_Name CODE_SOURCERY_PKG_PATH) (/) (${ VSub_Name CODE_SOURCERY_PKG) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(runCommand)} {(DQ ("Unpacking CodeSourcery in ") (${ VSub_Name CODE_SOURCERY))} {(tar)} {(jxf)} {(${ VSub_Name CODE_SOURCERY_PKG_PATH) (/) (${ VSub_Name CODE_SOURCERY_PKG)} ) ] spids: [-1 706] ) ] else_action: [ (C {(echo)} {(-n)} {(DQ ("CodeSourcery tarball not found in "))}) (C {(echo)} { (DQ (${ VSub_Name CODE_SOURCERY_PKG_PATH) (/) (${ VSub_Name CODE_SOURCERY_PKG) ) } ) (C {(echo)} {(-n)} {(DQ ("Fix the path or download it from "))}) (C {(echo)} { (DQ (${ VSub_Name CODE_SOURCERY_HTTP) (/) (${ VSub_Name CROSS_TARGET) (/) (${ VSub_Name CODE_SOURCERY_PKG) ) } ) (C {(exit)}) ] spids: [733 787] ) ] spids: [-1 672] ) ] else_action: [(C {(echo)} {(DQ ("CodeSourcery install dir already exists; skipping."))})] spids: [790 800] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_d child:{(DQ (${ VSub_Name SYSROOT))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-n)} { (DQ ("Error: CodeSourcery does not contain libc for ") (${ VSub_Name CROSS_TARGET) (": ") ) } ) (C {(echo)} {(DQ (${ VSub_Name SYSROOT) (" not found."))}) (C {(exit)}) ] spids: [-1 825] ) ] spids: [-1 854] ) (ForEach iter_name: tool iter_words: [{(${ VSub_Name CROSS_TARGET_AS)} {(${ VSub_Name CROSS_TARGET_LD)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_e child: {($ VSub_Name "$tool")} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ (${ VSub_Name tool) (" not found; exiting."))}) (C {(exit)}) ] spids: [-1 889] ) ] spids: [-1 905] ) ] spids: [873 908] ) spids: [863 871] ) ] spids: [650] ) spids: [646 649] ) (FuncDef name: installLLVM body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_d child:{(${ VSub_Name LLVM_INSTALL_DIR)}) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("LLVM install dir ") (${ VSub_Name LLVM_INSTALL_DIR) (" exists; skipping.") ) } ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 933] ) ] spids: [-1 950] ) (C {(sudoCreateDir)} {(${ VSub_Name LLVM_INSTALL_DIR)}) (C {(cd)} {(${ VSub_Name SRC_ROOT)}) (C {(runCommand)} {(DQ ("Unpacking LLVM"))} {(tar)} {(jxf)} {(${ VSub_Name LLVM_PKG_PATH) (/) (${ VSub_Name LLVM_PKG)} ) (C {(createDir)} {(${ VSub_Name LLVM_OBJ_DIR)}) (C {(cd)} {(${ VSub_Name LLVM_OBJ_DIR)}) (C {(runAndLog)} {(DQ ("Configuring LLVM"))} {(${ VSub_Name LLVM_OBJ_DIR) (/llvm-configure.log)} {(${ VSub_Name LLVM_SRC_DIR) (/configure)} {(--disable-jit)} {(--enable-optimized)} {(--prefix) (Lit_Other "=") (${ VSub_Name LLVM_INSTALL_DIR)} {(--target) (Lit_Other "=") (${ VSub_Name CROSS_TARGET)} {(--with-llvmgccdir) (Lit_Other "=") (${ VSub_Name LLVMGCC_INSTALL_DIR)} ) (C {(runAndLog)} {(DQ ("Building LLVM"))} {(${ VSub_Name LLVM_OBJ_DIR) (/llvm-build.log)} {(make)} {(${ VSub_Name MAKE_OPTS)} ) (C {(runAndLog)} {(DQ ("Installing LLVM"))} {(${ VSub_Name LLVM_OBJ_DIR) (/llvm-install.log)} {(make)} {(${ VSub_Name MAKE_OPTS)} {(install)} ) ] spids: [917] ) spids: [913 916] ) (FuncDef name: installLLVMGCC body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_d child: {(${ VSub_Name LLVMGCC_INSTALL_DIR)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("LLVM-GCC install dir ") (${ VSub_Name LLVMGCC_INSTALL_DIR) (" exists; skipping.") ) } ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 1126] ) ] spids: [-1 1143] ) (C {(sudoCreateDir)} {(${ VSub_Name LLVMGCC_INSTALL_DIR)}) (C {(cd)} {(${ VSub_Name SRC_ROOT)}) (C {(runCommand)} {(DQ ("Unpacking LLVM-GCC"))} {(tar)} {(jxf)} {(${ VSub_Name LLVM_PKG_PATH) (/) (${ VSub_Name LLVMGCC_PKG)} ) (C {(createDir)} {(${ VSub_Name LLVMGCC_OBJ_DIR)}) (C {(cd)} {(${ VSub_Name LLVMGCC_OBJ_DIR)}) (C {(runAndLog)} {(DQ ("Configuring LLVM-GCC"))} {(${ VSub_Name LLVMGCC_OBJ_DIR) (/llvmgcc-configure.log)} {(${ VSub_Name LLVMGCC_SRC_DIR) (/configure)} {(--enable-languages) (Lit_Other "=") (c) (Lit_Comma ",") (c) (Lit_Other "+") (Lit_Other "+") } {(--enable-llvm) (Lit_Other "=") (${ VSub_Name LLVM_INSTALL_DIR)} {(--prefix) (Lit_Other "=") (${ VSub_Name LLVMGCC_INSTALL_DIR)} {(--program-prefix) (Lit_Other "=") (llvm-)} {(--target) (Lit_Other "=") (${ VSub_Name CROSS_TARGET)} {(--with-arch) (Lit_Other "=") (${ VSub_Name CROSS_MARCH)} {(--with-as) (Lit_Other "=") (${ VSub_Name CROSS_TARGET_AS)} {(--with-ld) (Lit_Other "=") (${ VSub_Name CROSS_TARGET_LD)} {(--with-sysroot) (Lit_Other "=") (${ VSub_Name SYSROOT)} ) (C {(runAndLog)} {(DQ ("Building LLVM-GCC"))} {(${ VSub_Name LLVMGCC_OBJ_DIR) (/llvmgcc-build.log)} {(make)} ) (C {(runAndLog)} {(DQ ("Installing LLVM-GCC"))} {(${ VSub_Name LLVMGCC_OBJ_DIR) (/llvmgcc-install.log)} {(make)} {(install)} ) ] spids: [1110] ) spids: [1106 1109] ) (C {(echo)} { (DQ ("Building in ") (${ VSub_Name SCRATCH_ROOT) ("; installing in ") (${ VSub_Name INSTALL_ROOT) ) } ) (C {(createDir)} {(${ VSub_Name SRC_ROOT)}) (C {(createDir)} {(${ VSub_Name OBJ_ROOT)}) (C {(installCodeSourcery)}) (C {(installLLVM)}) (C {(installLLVMGCC)}) (C {(echo)} {(DQ (Done.))}) ] )