(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<source>} {<'sources/include.sh'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<load_target>} {(DQ ($ Id.VSub_Number 1))})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<check_for_base_arch>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (C {<check_prerequisite>} {(DQ (${ Id.VSub_Name CC_PREFIX) <cc>)})
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {<mkdir>} {<-p>} 
          (word.BracedTree
            parts: [
              (DQ ($ Id.VSub_DollarName STAGE_DIR))
              <'/'>
              (word_part.BracedTuple
                words: [{<tmp>} {<Id.KW_Proc proc>} {<sys>} {<dev>} {<home>} {<mnt>} {<root>}]
              )
            ]
          )
        )
        (C {<chmod>} {<a> <Id.Lit_Other '+'> <rwxt>} {(DQ ($ Id.VSub_DollarName STAGE_DIR) <'/tmp'>)})
        (C {<dienow>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STAGE_USR='> name:STAGE_USR)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName STAGE_DIR) <'/usr'>)}
          spids: [101]
        )
      ]
      redirects: []
    )
    (command.ForEach
      iter_names: [i]
      iterable: (for_iter.Words words:[{<bin>} {<sbin>} {<lib>} {<etc>}])
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<mkdir>} {<-p>} 
                  {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/'> ($ Id.VSub_DollarName i))}
                )
                (C {<ln>} {<-s>} {(DQ <'usr/'> ($ Id.VSub_DollarName i))} 
                  {(DQ ($ Id.VSub_DollarName STAGE_DIR) <'/'> ($ Id.VSub_DollarName i))}
                )
                (C {<dienow>})
              ]
            )
          ]
        )
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {<cp>} {<-r>} {(DQ ($ Id.VSub_DollarName SOURCES) <'/root-filesystem/.'>)} 
          {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/'>)}
        )
        (command.Simple
          words: [
            {<echo>}
            {<-e>}
            {
              (DQ <'CROSS_TARGET='> ($ Id.VSub_DollarName CROSS_TARGET) <Id.Lit_BadBackslash '\\'> 
                <'nKARCH='> ($ Id.VSub_DollarName KARCH)
              )
            }
          ]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/src/host-info'>)}
            )
          ]
          more_env: []
          do_fork: T
        )
        (C {<cp>} {(DQ ($ Id.VSub_DollarName SRCDIR)) <'/MANIFEST'>} 
          {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/src'>)}
        )
        (C {<dienow>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                  {(DQ ($ Id.VSub_DollarName MY_ROOT_OVERLAY))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName TOP))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Pipeline
                  children: [
                    (C {<tar>} {<-c>} {<-C>} {(DQ ($ Id.VSub_DollarName MY_ROOT_OVERLAY))} {<.>})
                    (C {<tar>} {<-x>} {<-C>} {(DQ ($ Id.VSub_DollarName STAGE_DIR))})
                  ]
                  negated: F
                  stderr_indices: []
                )
                (C {<dienow>})
              ]
            )
          ]
          spids: [241 255]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Simple
      words: [{<build_section>} {<busybox>}]
      redirects: []
      more_env: [(env_pair name:STAGE_DIR val:{(DQ ($ Id.VSub_DollarName STAGE_USR))} spids:[300])]
      do_fork: T
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cp>} {(DQ ($ Id.VSub_DollarName WORK)) <'/config-busybox'>} 
          {(DQ ($ Id.VSub_DollarName STAGE_USR)) <'/src'>}
        )
        (C {<dienow>})
      ]
    )
    (C {<build_section>} {<toybox>})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) <cc>)} 
          {(DQ (${ Id.VSub_Name SOURCES) <'/root-filesystem/src/hello.c'>)} {<-Os>} {($ Id.VSub_DollarName CFLAGS)} {<-o>} 
          {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/bin/hello-dynamic'>)}
        )
        (C {<dienow>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName BUILD_STATIC))} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(DQ (${ Id.VSub_Name CC_PREFIX) <cc>)} 
                  {(DQ (${ Id.VSub_Name SOURCES) <'/root-filesystem/src/hello.c'>)} {<-Os>} {($ Id.VSub_DollarName CFLAGS)} {<-static>} {<-o>} 
                  {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/bin/hello-static'>)}
                )
                (C {<dienow>})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATIC='> name:STATIC)
                  op: assign_op.Equal
                  rhs: {<--static>}
                  spids: [421]
                )
              ]
              redirects: []
            )
          ]
          spids: [369 384]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATIC='> name:STATIC)
              op: assign_op.Equal
              rhs: (rhs_word.Empty)
              spids: [427]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) <cc>)} 
          {(DQ ($ Id.VSub_DollarName SOURCES) <'/toys/wrappy.c'>)} {<-Os>} {($ Id.VSub_DollarName CFLAGS)} {($ Id.VSub_DollarName STATIC)} {<-o>} 
          {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/bin/record-commands-wrapper'>)}
        )
        (C {<dienow>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (command.Pipeline
                      children: [(C {<is_in_list>} {<toybox>} {($ Id.VSub_DollarName BUILD_STATIC)})]
                      negated: T
                      stderr_indices: []
                    )
                    (command.Pipeline
                      children: [(C {<is_in_list>} {<busybox>} {($ Id.VSub_DollarName BUILD_STATIC)})]
                      negated: T
                      stderr_indices: []
                    )
                  ]
                )
              ]
            )
          action: [
            (C {<echo>} {<Copying>} {<compiler>} {<libraries...>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName STAGE_USR) <'/lib'>)})
                (C {<dienow>})
              ]
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<path_search>} 
                          {
                            (DQ 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {(DQ (${ Id.VSub_Name CC_PREFIX) <cc>)} 
                                        {<--print-search-dirs>}
                                      )
                                      (C {<sed>} {<-n>} {(SQ <'s/^libraries: =*//p'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            )
                          } {(DQ <'*.so*'>)} {(SQ <'cp -H "$DIR/$FILE" "$STAGE_USR/lib/$FILE"'>)}
                        )
                        (C {<dienow>})
                      ]
                    )
                  redirects: []
                )
                (C {<dotprogress>})
              ]
              negated: F
              stderr_indices: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName SKIP_STRIP))} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {(DQ (${ Id.VSub_Name CC_PREFIX) <strip>)} {<--strip-unneeded>} 
                  {(DQ ($ Id.VSub_DollarName STAGE_USR)) <'/lib/'> <Id.Lit_Star '*'> <.so>}
                )
              ]
            )
          ]
          spids: [472 492]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName SKIP_STRIP))} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {(DQ (${ Id.VSub_Name CC_PREFIX) <strip>)} 
          (word.BracedTree
            parts: [
              (DQ ($ Id.VSub_DollarName STAGE_USR))
              <'/'>
              (word_part.BracedTuple
                words: [{<'bin/'> <Id.Lit_Star '*'>} {<'sbin/'> <Id.Lit_Star '*'>}]
              )
            ]
          )
        )
      ]
    )
    (C {<create_stage_tarball>})
    (C {<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <'e[0mBuild complete'>)})
  ]
)