(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'srcdir='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'srcdir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'libdir='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'libdir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 2)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'prefix='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'prefix='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prefix='> name:prefix)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 3)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exec_prefix='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exec_prefix='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_prefix='> name:exec_prefix)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 4)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'host='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'host='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 5)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'target='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'target='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 6)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'target_alias='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'target_alias='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target_alias='> name:target_alias)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 7)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMULATION_LIBPATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMULATION_LIBPATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMULATION_LIBPATH='> name:EMULATION_LIBPATH)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 8)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NATIVE_LIB_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NATIVE_LIB_DIRS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NATIVE_LIB_DIRS='> name:NATIVE_LIB_DIRS)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 9)}
        )
      ]
      redirects: []
    )
    (command.Simple blame_tok:<shift> more_env:[] words:[{<shift>} {<9>}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'use_sysroot='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'use_sysroot='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'use_sysroot='> name:use_sysroot)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='>
              name: ENABLE_INITFINI_ARRAY
            )
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 2)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMULATION_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMULATION_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMULATION_NAME='> name:EMULATION_NAME)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 3)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TOOL_LIB='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TOOL_LIB='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TOOL_LIB='> name:TOOL_LIB)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 4)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='> name:CUSTOMIZER_SCRIPT)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name srcdir) <'/emulparams/'> (${ Id.VSub_Name EMULATION_NAME) <.sh>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-d>} {<ldscripts>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <true>
              more_env: []
              words: [{<true>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [302 311]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<ldscripts>}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName EMULATION_LIBPATH) <' '>)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name EMULATION_NAME) <' '>) <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ <x> (${ Id.VSub_Name host))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <x> (${ Id.VSub_Name target))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'NATIVE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'NATIVE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NATIVE='> name:NATIVE)
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'USE_LIBPATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'USE_LIBPATH='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'USE_LIBPATH='>
                              name: USE_LIBPATH
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [365 389]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ <x> (${ Id.VSub_Name use_sysroot))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <xyes>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'USE_LIBPATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'USE_LIBPATH='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'USE_LIBPATH='>
                              name: USE_LIBPATH
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [400 421]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {(DQ <x> ($ Id.VSub_DollarName NATIVE))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <xyes>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USE_LIBPATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USE_LIBPATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USE_LIBPATH='> name:USE_LIBPATH)
                  op: assign_op.Equal
                  rhs: {<yes>}
                )
              ]
              redirects: []
            )
          ]
          spids: [439 456]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lib_path1='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lib_path1='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path1='> name:lib_path1)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lib_path2='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lib_path2='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path2='> name:lib_path2)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name LIB_PATH))}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {(DQ <':'>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lib_path2='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lib_path2='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path2='> name:lib_path2)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name LIB_PATH)}
                )
              ]
              redirects: []
            )
          ]
          spids: [509 530]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <append_to_lib_path>
      name: append_to_lib_path
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [lib]
                      iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {(DQ <x> (${ Id.VSub_Name use_sysroot))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <xyes>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lib='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lib='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib='>
                                              name: lib
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'='> (${ Id.VSub_Name lib))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [586 607]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'skip_lib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'skip_lib='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'skip_lib='>
                                      name: skip_lib
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ (${ Id.VSub_Name LIBPATH_SUFFIX))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name lib))})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (${ Id.VSub_Name LIBPATH_SUFFIX)}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) 
                                                      <Id.Lit_Colon ':'>
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                          (${ Id.VSub_Name lib) <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Colon ':'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib_path1='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib_path1='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib_path1='>
                                                              name: lib_path1
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name lib)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib_path1='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib_path1='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib_path1='>
                                                              name: lib_path1
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(${ Id.VSub_Name lib_path1) 
                                                              <Id.Lit_Colon ':'> (${ Id.VSub_Name lib)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    (${ Id.VSub_Name 
LIBPATH_SUFFIX_SKIP
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {(DQ (${ Id.VSub_Name lib))}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (${ Id.VSub_Name 
LIBPATH_SUFFIX_SKIP
                                                                  )
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'skip_lib='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'skip_lib='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'skip_lib='>
                                                                      name: skip_lib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [719 732]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {(DQ (${ Id.VSub_Name skip_lib))}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ <no>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {<Id.Lit_Colon ':'> 
                                                              (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'>
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                                  (${ Id.VSub_Name lib) (${ Id.VSub_Name LIBPATH_SUFFIX) <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Colon ':'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Colon ':'> 
                                                                  <Id.Lit_Colon ':'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'lib_path1='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'lib_path1='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'lib_path1='>
                                                                      name: lib_path1
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(${ Id.VSub_Name lib) 
                                                                      (${ Id.VSub_Name LIBPATH_SUFFIX)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'lib_path1='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'lib_path1='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'lib_path1='>
                                                                      name: lib_path1
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(${ Id.VSub_Name lib_path1) 
                                                                      <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) (${ Id.VSub_Name LIBPATH_SUFFIX)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [764 781]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [626 639]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ (${ Id.VSub_Name skip_lib))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <no>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) 
                                              <Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  (${ Id.VSub_Name lib) <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  <Id.Lit_Colon ':'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib_path2='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib_path2='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib_path2='>
                                                      name: lib_path2
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(${ Id.VSub_Name lib)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib_path2='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib_path2='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib_path2='>
                                                      name: lib_path2
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'> 
                                                      (${ Id.VSub_Name lib)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [857 874]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [551 565]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ (${ Id.VSub_Name LIB_PATH))}
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {(DQ <':'>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ <x> (${ Id.VSub_Name TOOL_LIB))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <x>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ <x> (${ Id.VSub_Name NATIVE))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <xyes>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name exec_prefix) <'/'> 
                                        (${ Id.VSub_Name target_alias) <'/lib'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1003 1024]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [979 1000]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: 
                    (case_arg.Word
                      w: 
                        {
                          (DQ (${ Id.VSub_Name NATIVE) <':'> (${ Id.VSub_Name LIBPATH_SUFFIX) <':'> 
                            (${ Id.VSub_Name TOOL_LIB)
                          )
                        }
                    )
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <Id.Lit_Colon ':'>
                      pattern: 
                        (pat.Words
                          words: [
                            {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                              <Id.Lit_Star '*'> (${ Id.VSub_Name LIBPATH_SUFFIX)
                            }
                          ]
                        )
                      middle: <Id.Right_CasePat _>
                      action: []
                      right: <Id.Op_DSemi _>
                    )
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'libs='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'libs='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (${ Id.VSub_Name exec_prefix) <'/'> 
                                    (${ Id.VSub_Name target_alias) <'/lib'> (${ Id.VSub_Name LIBPATH_SUFFIX)
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'libs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'libs='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ (${ Id.VSub_Name exec_prefix) <'/'> (${ Id.VSub_Name TOOL_LIB) <'/lib '> 
                            (${ Id.VSub_Name libs)
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <append_to_lib_path>
              more_env: []
              words: [{<append_to_lib_path>} {(${ Id.VSub_Name libs)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [952 973]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ <x> (${ Id.VSub_Name LIB_PATH))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <x>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ <x> (${ Id.VSub_Name USE_LIBPATH))}
                            {<Id.Lit_Equals '='>}
                            {<xyes>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name NATIVE_LIB_DIRS)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ <x> (${ Id.VSub_Name NATIVE))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <xyes>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> (${ Id.VSub_Name libs) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name libdir) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name libdir) <' '> (${ Id.VSub_Name libs))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [1209 1230]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <append_to_lib_path>
              more_env: []
              words: [{<append_to_lib_path>} {(${ Id.VSub_Name libs)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1162 1200]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> 
              (${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'>
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}
                {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIB_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIB_PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_PATH='> name:LIB_PATH)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name lib_path1) (${ Id.VSub_Name lib_path2)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIB_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIB_PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_PATH='> name:LIB_PATH)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path2)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LIB_SEARCH_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LIB_SEARCH_DIRS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_SEARCH_DIRS='> name:LIB_SEARCH_DIRS)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {(${ Id.VSub_Name LIB_PATH)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <sed>
                        more_env: []
                        words: [
                          {<sed>}
                          {<-e>}
                          {(SQ <'s/:/ /g'>)}
                          {<-e>}
                          {(SQ <'s/\\([^ ][^ ]*\\)/SEARCH_DIR(\\"\\1\\");/g'>)}
                        ]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {($ Id.VSub_DollarName EMULATION_LIBPATH)}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ <x> ($ Id.VSub_Number 1))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <x> ($ Id.VSub_DollarName EMULATION_NAME))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-d>} {<tmpdir>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <mkdir>
                  more_env: []
                  words: [{<mkdir>} {<tmpdir>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<'tmpdir/libpath.exp'>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'set libpath '> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) (${ Id.VSub_Name LIB_PATH) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'s/:/ /g'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'tmpdir/libpath.exp'>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          spids: [1391 1410]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ <x> ($ Id.VSub_DollarName SCRIPT_NAME))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <xelf>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='>
                      name: GENERATE_COMBRELOC_SCRIPT
                    )
                  op: assign_op.Equal
                  rhs: {<yes>}
                )
              ]
              redirects: []
            )
          ]
          spids: [1522 1540]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SEGMENT_SIZE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SEGMENT_SIZE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEGMENT_SIZE='> name:SEGMENT_SIZE)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name SEGMENT_SIZE>
                var_name: SEGMENT_SIZE
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_Hyphen _>
                    arg_word: 
                      {
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name MAXPAGESIZE>
                          var_name: MAXPAGESIZE
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Hyphen _>
                              arg_word: {(${ Id.VSub_Name TARGET_PAGE_SIZE)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT_='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT_='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_='> name:DATA_ALIGNMENT_)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name DATA_ALIGNMENT_>
                  var_name: DATA_ALIGNMENT_
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Hyphen _>
                      arg_word: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name DATA_ALIGNMENT>
                            var_name: DATA_ALIGNMENT
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_Hyphen _>
                                arg_word: {<'ALIGN('> (${ Id.VSub_Name SEGMENT_SIZE) <')'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT_n='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT_n='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_n='> name:DATA_ALIGNMENT_n)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name DATA_ALIGNMENT_n>
                  var_name: DATA_ALIGNMENT_n
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Hyphen _>
                      arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT_N='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT_N='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_N='> name:DATA_ALIGNMENT_N)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name DATA_ALIGNMENT_N>
                  var_name: DATA_ALIGNMENT_N
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Hyphen _>
                      arg_word: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name DATA_ALIGNMENT>
                            var_name: DATA_ALIGNMENT
                            suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<.>})
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT_r='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT_r='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_r='> name:DATA_ALIGNMENT_r)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name DATA_ALIGNMENT_r>
                  var_name: DATA_ALIGNMENT_r
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Hyphen _>
                      arg_word: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name DATA_ALIGNMENT>
                            var_name: DATA_ALIGNMENT
                            suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{})
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT_u='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT_u='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_u='> name:DATA_ALIGNMENT_u)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name DATA_ALIGNMENT_u>
                  var_name: DATA_ALIGNMENT_u
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Hyphen _>
                      arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_r)}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_FLAG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_FLAG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
          op: assign_op.Equal
          rhs: {<r>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_r)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='>
              name: DEFAULT_DATA_ALIGNMENT
            )
          op: assign_op.Equal
          rhs: {(DQ <'ALIGN('> (${ Id.VSub_Name SEGMENT_SIZE) <')'>)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'/* Script for ld -r: link without relocation */'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [
                    {<.>}
                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xr>}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_FLAG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_FLAG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
          op: assign_op.Equal
          rhs: {<u>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_u)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CONSTRUCTING='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CONSTRUCTING='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONSTRUCTING='> name:CONSTRUCTING)
          op: assign_op.Equal
          rhs: {(DQ <' '>)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <'/* Script for ld -Ur: link w/out relocation, do create constructors */'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [
                    {<.>}
                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xu>}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_FLAG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_FLAG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'RELOCATING='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'RELOCATING='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELOCATING='> name:RELOCATING)
          op: assign_op.Equal
          rhs: {(DQ <' '>)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'/* Default linker script, for normal executables */'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [
                    {<.>}
                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.x>}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_FLAG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_FLAG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
          op: assign_op.Equal
          rhs: {<n>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_n)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'/* Script for -n: mix text and data on same page */'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [
                    {<.>}
                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xn>}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LD_FLAG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LD_FLAG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
          op: assign_op.Equal
          rhs: {<N>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_N)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <'/* Script for -N: mix text and data on same page; don\'t align data */'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [
                    {<.>}
                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
          redirects: [
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xbn>}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name DATA_ALIGNMENT_c>
                        var_name: DATA_ALIGNMENT_c
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD_FLAG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD_FLAG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                  op: assign_op.Equal
                  rhs: {<c>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMBRELOC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMBRELOC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                  op: assign_op.Equal
                  rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xc.tmp>}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'/* Script for -z combreloc: combine and sort reloc sections */'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [
                            {<.>}
                            {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) 
                              <.sc>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xc>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD_FLAG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD_FLAG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                  op: assign_op.Equal
                  rhs: {<w>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'RELRO_NOW='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'RELRO_NOW='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW)
                  op: assign_op.Equal
                  rhs: {(DQ <' '>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMBRELOC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMBRELOC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                  op: assign_op.Equal
                  rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xw.tmp>}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ 
                                <
'/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */'
                                >
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [
                            {<.>}
                            {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) 
                              <.sc>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xw>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMBRELOC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMBRELOC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<RELRO_NOW>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1933 1944]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_SHLIB_SCRIPT))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD_FLAG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD_FLAG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                  op: assign_op.Equal
                  rhs: {<shared>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name DATA_ALIGNMENT_s>
                        var_name: DATA_ALIGNMENT_s
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CREATE_SHLIB='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CREATE_SHLIB='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CREATE_SHLIB='> name:CREATE_SHLIB)
                  op: assign_op.Equal
                  rhs: {(DQ <' '>)}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'/* Script for ld --shared: link shared library */'>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [
                            {<.>}
                            {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) 
                              <.sc>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xs>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-n>}
                                {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LD_FLAG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LD_FLAG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                          op: assign_op.Equal
                          rhs: {<cshared>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                              name: DATA_ALIGNMENT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name DATA_ALIGNMENT_sc>
                                var_name: DATA_ALIGNMENT_sc
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Hyphen _>
                                    arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT)}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsc.tmp>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ 
                                        <
'/* Script for --shared -z combreloc: shared library, combine & sort relocs */'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [
                                    {<.>}
                                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> 
                                      (${ Id.VSub_Name SCRIPT_NAME) <.sc>
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsc>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LD_FLAG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LD_FLAG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                          op: assign_op.Equal
                          rhs: {<wshared>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'RELRO_NOW='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'RELRO_NOW='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW)
                          op: assign_op.Equal
                          rhs: {(DQ <' '>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsw.tmp>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ 
                                        <
'/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [
                                    {<.>}
                                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> 
                                      (${ Id.VSub_Name SCRIPT_NAME) <.sc>
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsw>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <unset>
                      more_env: []
                      words: [{<unset>} {<RELRO_NOW>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2197 2208]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<CREATE_SHLIB>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2113 2124]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_PIE_SCRIPT))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD_FLAG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD_FLAG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                  op: assign_op.Equal
                  rhs: {<pie>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name DATA_ALIGNMENT_s>
                        var_name: DATA_ALIGNMENT_s
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CREATE_PIE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CREATE_PIE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CREATE_PIE='> name:CREATE_PIE)
                  op: assign_op.Equal
                  rhs: {(DQ <' '>)}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'/* Script for ld -pie: link position independent executable */'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [
                            {<.>}
                            {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) 
                              <.sc>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xd>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-n>}
                                {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LD_FLAG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LD_FLAG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                          op: assign_op.Equal
                          rhs: {<cpie>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                              name: DATA_ALIGNMENT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name DATA_ALIGNMENT_sc>
                                var_name: DATA_ALIGNMENT_sc
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Hyphen _>
                                    arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT)}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdc.tmp>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ 
                                        <
'/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [
                                    {<.>}
                                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> 
                                      (${ Id.VSub_Name SCRIPT_NAME) <.sc>
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdc>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'LD_FLAG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'LD_FLAG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                          op: assign_op.Equal
                          rhs: {<wpie>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'RELRO_NOW='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'RELRO_NOW='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW)
                          op: assign_op.Equal
                          rhs: {(DQ <' '>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdw.tmp>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ 
                                        <
'/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <.>
                                  more_env: []
                                  words: [
                                    {<.>}
                                    {(${ Id.VSub_Name srcdir) <'/scripttempl/'> 
                                      (${ Id.VSub_Name SCRIPT_NAME) <.sc>
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdw>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'COMBRELOC='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'COMBRELOC='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <unset>
                      more_env: []
                      words: [{<unset>} {<RELRO_NOW>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [2469 2480]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<CREATE_PIE>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2385 2396]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_AUTO_IMPORT_SCRIPT))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD_FLAG='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD_FLAG='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG)
                  op: assign_op.Equal
                  rhs: {<auto_import>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATA_ALIGNMENT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_)}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ 
                                <
'/* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data  */'
                                >
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <.>
                          more_env: []
                          words: [
                            {<.>}
                            {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) 
                              <.sc>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xa>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          spids: [2657 2668]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (DQ ($ Id.VSub_DollarName COMPILE_IN) <': '> ($ Id.VSub_DollarName EMULATION_LIBPATH) 
                <' '>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Colon ':'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name EMULATION_NAME) <' '>) 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COMPILE_IN='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COMPILE_IN='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPILE_IN='> name:COMPILE_IN)
                  op: assign_op.Equal
                  rhs: {<yes>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      name_tok: <has_lineno>
      name: has_lineno
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [
                {<test>}
                {(DQ <x> ($ Id.VSub_DollarName BASH_LINENO))}
                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                {(DQ <x>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <has_lineno>
                      more_env: []
                      words: [{<has_lineno>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {(${ Id.VSub_Name srcdir) <'/genscrba.sh'>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2800 2805]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <source_em>
          name: source_em
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <.>
                  more_env: []
                  words: [{<.>} {($ Id.VSub_Number 1)}]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
        (command.ShFunction
          name_tok: <fragment>
          name: fragment
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>}
                    )
                  ]
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.Redir_Great '>'>
      more_env: []
      words: []
      redirects: [
        (Redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>}
        )
      ]
      do_fork: F
    )
    (command.Simple
      blame_tok: <source_em>
      more_env: []
      words: [
        {<source_em>}
        {(${ Id.VSub_Name srcdir) <'/emultempl/'> 
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name TEMPLATE_NAME>
            var_name: TEMPLATE_NAME
            suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<generic>})
            right: <Id.Right_DollarBrace '}'>
          ) <.em>
        }
      ]
      redirects: []
      do_fork: T
    )
  ]
)