(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
    )
  ]
)