(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SAVEPATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PATH'))} spids: [66] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<source>} {<sources/include.sh>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STAGE_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name HOSTTOOLS))} spids: [82] ) ] ) (C {<blank_tempdir>} {(DQ ($ Id.VSub_DollarName '$WORK'))}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))}) (C {<dienow>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<hosttools_path>})]) ) <':'> ($ Id.VSub_DollarName '$PATH') ) } spids: [179] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$BUILD_STATIC'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {($ Id.VSub_DollarName '$CC')} {(DQ ($ Id.VSub_DollarName '$SOURCES') </root-filesystem/src/hello.c>)} {<--static>} {<-o>} {</dev/null>} ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.Simple words: [{<echo>} {(DQ <'Your host toolchain does not support static linking.'>)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.Simple words: [{<echo>} {(DQ <'Either install support, or export BUILD_STATIC=none'>)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (C {<dienow>}) ] spids: [226 239] ) ] ) ] spids: [193 208] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </busybox>)} {<Id.Lit_RBracket ']'>} ) (C {<build_section>} {<busybox>}) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </sh>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </toybox>)} {<Id.Lit_RBracket ']'>} ) (C {<build_section>} {<toybox>}) ] ) (command.ForEach iter_name: i iter_words: [ {<ar>} {<as>} {<nm>} {<cc>} {<make>} {<ld>} {<gcc>} {<objdump>} {<sh>} {($ Id.VSub_DollarName '$HOST_EXTRA')} ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </> ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:X) op: assign_op.Equal rhs: {<0>} spids: [415] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FALLBACK) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))} spids: [419] ) ] ) (command.Pipeline children: [ (command.Simple words: [ {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </which>)} {<-a>} {(DQ ($ Id.VSub_DollarName '$i'))} ] more_env: [ (env_pair name: PATH val: {(DQ ($ Id.VSub_DollarName '$SAVEPATH'))} spids: [425] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [(C {<read>} {<j>})] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} { (DQ ($ Id.VSub_DollarName '$FALLBACK') </> ($ Id.VSub_DollarName '$i') ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$FALLBACK'))}) (C {<ln>} {<-sf>} {(DQ ($ Id.VSub_DollarName '$j'))} { (DQ ($ Id.VSub_DollarName '$FALLBACK') </> ($ Id.VSub_DollarName '$i') ) } ) (C {<dienow>}) ] ) ] spids: [453 470] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:X) op: assign_op.Equal rhs: { (word_part.ExprSub left: <Id.Left_DollarBracket '$['> child: (expr.Binary op: <Id.Arith_Plus _> left: ($ Id.VSub_DollarName '$X') right: (Const Id.Expr_DecInt 1) ) ) } spids: [507] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FALLBACK) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$STAGE_DIR') </fallback-> ($ Id.VSub_DollarName '$X') ) } spids: [515] ) ] ) ] ) ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} { (DQ ($ Id.VSub_DollarName '$STAGE_DIR') </> ($ Id.VSub_DollarName '$i')) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.Simple words: [ {<echo>} {(DQ <'Toolchain component missing: '> ($ Id.VSub_DollarName '$i'))} ] redirects: [ (redir.Redir op: <Id.Redir_GreatAnd '>&'> fd: -1 arg_word: {<2>} ) ] ) (C {<dienow>}) ] spids: [527 544] ) ] ) ] spids: [390 407] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ET_TU_UBUNTU) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [{(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </which>)} {<gcc.real>}] more_env: [ (env_pair name: PATH val: {(DQ ($ Id.VSub_DollarName '$SAVEPATH'))} spids: [579] ) ] ) ] ) ) ) } spids: [576] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$ET_TU_UBUNTU'))} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [ {<ln>} {<-s>} {(DQ ($ Id.VSub_DollarName '$ET_TU_UBUNTU'))} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR') </gcc.real>)} ] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<hosttools_path>})]) ) ) } spids: [631] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {<find>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))} {<-newer>} {(DQ ($ Id.VSub_DollarName '$BUILD') </record-commands>)} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$TOP'))}) (C {<more/record-commands.sh>}) (C {<dienow>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$WRAPDIR'))} spids: [686] ) ] ) ] spids: [638 668] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<-z>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<which>} {<distccd>})]) ) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<setupfor>} {<distcc>}) (C {<./configure>} {<--with-included-popt>} {<--disable-Werror>}) (C {<make>} {<-j>} {(DQ ($ Id.VSub_DollarName '$CPUS'))}) (C {<cp>} {<distcc>} {<distccd>} {(DQ (${ Id.VSub_Name STAGE_DIR))}) ] ) (C {<cleanup>}) ] spids: [720 736] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ (${ Id.VSub_Name STAGE_DIR)) </genext2fs>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<setupfor>} {<genext2fs>}) (C {<./configure>}) (C {<make>} {<-j>} {($ Id.VSub_DollarName '$CPUS')}) (C {<cp>} {<genext2fs>} {(DQ (${ Id.VSub_Name STAGE_DIR))}) ] ) (C {<cleanup>}) ] spids: [792 809] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ (${ Id.VSub_Name STAGE_DIR)) </mke2fs>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<setupfor>} {<e2fsprogs>}) (C {<./configure>} {<--disable-tls>} {<--disable-nls>} {<--enable-htree>}) (C {<make>} {<-j>} {(DQ ($ Id.VSub_DollarName '$CPUS'))}) (C {<cp>} (word.BracedTree parts: [<misc/> (word_part.BracedTuple words:[{<mke2fs>} {<tune2fs>}])] ) {<resize/resize2fs>} {(DQ (${ Id.VSub_Name STAGE_DIR))} ) (C {<cp>} {<e2fsck/e2fsck>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR')) </fsck.ext2>}) ] ) (C {<cleanup>}) ] spids: [883 900] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ (${ Id.VSub_Name STAGE_DIR)) </mksquashfs>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<setupfor>} {<zlib>}) (C {<./configure>}) (C {<make>} {<-j>} {($ Id.VSub_DollarName '$CPUS')}) (C {<mv>} {<z> <Id.Lit_Star '*'> <.h>} {<libz.a>} {<..>}) ] ) (C {<cleanup>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<setupfor>} {<squashfs>}) (C {<cd>} {<squashfs-tools>}) (C {<sed>} {<-i>} {(DQ <'/^XATTR_/d'>)} {<Makefile>}) (command.Simple words: [{<make>} {<-j>} {($ Id.VSub_DollarName '$CPUS')}] more_env: [ (env_pair name: CC val: {(DQ ($ Id.VSub_DollarName '$CC') <' -I ../.. -L ../..'>)} spids: [1064] ) ] ) (C {<cp>} {<mksquashfs>} {<unsquashfs>} {(DQ (${ Id.VSub_Name STAGE_DIR))}) (C {<rm>} (word.BracedTree parts: [ <../../> (word_part.BracedTuple words: [{<z> <Id.Lit_Star '*'> <.h>} {<libz.a>}] ) ] ) ) ] ) (C {<cleanup>}) ] spids: [972 989] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {<find>} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))} {<-newer>} {(DQ ($ Id.VSub_DollarName '$BUILD') </record-commands>)} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$TOP'))}) (C {<more/record-commands.sh>}) (C {<dienow>}) ] ) ] spids: [1115 1145] ) ] ) (C {<echo>} {<-e>} {(DQ <Id.Lit_Other '\\'> <'e[32mHost tools build complete.'> <Id.Lit_Other '\\'> <'e[0m'>)} ) ] )