(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<.>} {<'sources/utility_functions.sh'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$CROSS_COMPILER_HOST'))} {<Id.Lit_RBracket ']'>} ) (C {<export>} {<Id.Lit_VarLike 'CROSS_COMPILER_HOST='> <i686>}) ] ) (C {<trap>} {(DQ <'killtree '> ($ Id.VSub_Dollar '$$'))} {<EXIT>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$NO_CLEAN'))} {<Id.Lit_RBracket ']'>} ) (C {<blank_tempdir>} {<build>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<mkdir>} {<-p>} {<'build/logs'>}) (command.Pipeline children: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{<'./download.sh'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [(env_pair name:EXTRACT_ALL val:{<1>} spids:[97])] do_fork: T ) (C {<'more/record-commands.sh'>}) (command.Simple words: [{<'./host-tools.sh'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<'more/record-commands.sh'>}) (command.Simple words: [ {<'./simple-cross-compiler.sh'>} {(DQ ($ Id.VSub_DollarName '$CROSS_COMPILER_HOST'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<dienow>}) ] ) ) (C {<tee>} {<'build/logs/build-host-cc.txt'>}) (C {<maybe_quiet>}) ] negated: F ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<cp>} {<'packages/MANIFEST'>} {<build>}) (C {<dienow>})] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$FORK'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$CPUS'))} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEGS) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<awk>} {(SQ <'/MemTotal:/{print $2}'>)} {<'/proc/meminfo'>}) ) } right: {<Id.Lit_Digits 1024>} ) ) } spids: [199] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET_COUNT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<find>} {<'sources/targets'>} {<-maxdepth>} {<1>} {<-type>} {<f>}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [216] ) ] ) (C {<export>} {<Id.Lit_VarLike 'CPUS='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName '$MEGS')} right: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$TARGET_COUNT')} right: {<Id.Lit_Digits 512>} ) ) ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CPUS'))} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPUS) op: assign_op.Equal rhs: {<1>} spids: [267] ) ] ) ] ) ] spids: [170 196] ) ] ) (C {<'more/for-each-target.sh'>} {(SQ <'./build.sh $TARGET 2>&1 | tee build/logs/build-${TARGET}.txt'>)} ) (C {<'more/for-each-target.sh'>} {(SQ <'more/smoketest.sh $TARGET 2>&1 | tee build/logs/smoketest-$TARGET.txt'>)} ) (command.ForEach iter_name: i iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [(C {<'more/buildall-native.sh'>} {(DQ ($ Id.VSub_Number '$1'))})] ) ) (command.Pipeline children: [(C {<'more/smoketest-report.sh'>}) (C {<tee>} {<'build/logs/status.txt'>})] negated: F ) ] )