(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROGRAM)
          op: assign_op.Equal
          rhs: {<libtool>}
          spids: [83]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGE)
          op: assign_op.Equal
          rhs: {<libtool>}
          spids: [86]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VERSION)
          op: assign_op.Equal
          rhs: {(DQ <'2.4.6 Debian-2.4.6-0.1'>)}
          spids: [89]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:package_revision)
          op: assign_op.Equal
          rhs: {<2.4.6>}
          spids: [94]
        )
      ]
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name AUTOCONF>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <autoconf>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name AUTOMAKE>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <automake>)})
        )
      }
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:scriptversion)
              op: assign_op.Equal
              rhs: {<2015-01-20.17>}
              spids: [182]
            )
          ]
        )
      terminator: <Id.Op_Semi _>
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DUALCASE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [308]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<DUALCASE>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name ZSH_VERSION>
                                suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<set>})
                              )
                            )
                          }
                        )
                        (command.Subshell
                          child: (C {<emulate>} {<sh>})
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Id.Lit_Colon ':'>})
            (C {<emulate>} {<sh>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NULLCMD)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [358]
                )
              ]
            )
            (C {<alias>} {<-g>} {(SQ <'${1+"$@"}'>) <Id.Lit_Equals '='> (SQ <'"$@"'>)})
            (C {<setopt>} {<NO_GLOB_SUBST>})
          ]
          spids: [319 348]
        )
      ]
      else_action: [
        (command.Case
          to_match: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Subshell
                    child: (C {<set>} {<-o>})
                    redirects: [
                      (redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                  )
              )
            }
          arms: [
            (case_arm
              pat_list: [{<Id.Lit_Star '*'> <posix> <Id.Lit_Star '*'>}]
              action: [(C {<set>} {<-o>} {<posix>})]
              spids: [407 410 418 -1]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_user_locale)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [428]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_safe_locale)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [430]
        )
      ]
    )
    (command.ForEach
      iter_name: _G_var
      iter_words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<eval>} 
              {
                (DQ <'if test set = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$_G_var') <'+set}'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'          save_'> ($ Id.VSub_DollarName '$_G_var') <'='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$_G_var') <'\n'> <'          '> ($ Id.VSub_DollarName '$_G_var') <'=C\n'> 
                  <'\t  export '> ($ Id.VSub_DollarName '$_G_var') <'\n'> <'\t  _G_user_locale='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$_G_var') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <save_> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'_G_var; '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <_G_user_locale> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> 
                  <'\t  _G_safe_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$_G_var') <'=C; '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <_G_safe_locale> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\tfi'>
                )
              }
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Subshell
          child: (C {<unset>} {<CDPATH>})
          redirects: [
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
        )
        (C {<unset>} {<CDPATH>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sp)
          op: assign_op.Equal
          rhs: {(SQ <' '>)}
          spids: [528]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:nl)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
          spids: [533]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IFS)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$sp') <'\t'> ($ Id.VSub_DollarName '$nl'))}
          spids: [538]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name PATH_SEPARATOR>
                            suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<set>})
                          )
                        )
                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<set>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PATH_SEPARATOR)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [570]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Subshell
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:PATH)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'/bin;/bin'>)}
                                  spids: [575]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:FPATH)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$PATH')}
                                  spids: [581]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (C {<sh>} {<-c>} {<Id.Lit_Colon ':'>})
                      ]
                    )
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                )
                (BraceGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PATH)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'/bin:/bin'>)}
                                          spids: [604]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:FPATH)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$PATH')}
                                          spids: [610]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (C {<sh>} {<-c>} {<Id.Lit_Colon ':'>})
                              ]
                            )
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:PATH_SEPARATOR)
                              op: assign_op.Equal
                              rhs: {(SQ <';'>)}
                              spids: [630]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
          spids: [549 567]
        )
      ]
    )
    (command.ShFunction
      name: func_executable_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                (C {<test>} {<-x>} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_path_progs
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_progs_list)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [731]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_check_func)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [735]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_PATH)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 3>
                        suffix_op: 
                          (suffix_op.Unary
                            tok: <Id.VTest_Hyphen ->
                            arg_word: {(DQ ($ Id.VSub_DollarName '$PATH'))}
                          )
                      )
                    }
                  spids: [739]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_path_prog_max)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [750]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_path_prog_found)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [754]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_G_save_IFS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$IFS')}
                      spids: [758]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name PATH_SEPARATOR>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<':'>})
                      )
                    }
                  spids: [762]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_dir
              iter_words: [{($ Id.VSub_DollarName '$_G_PATH')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$_G_save_IFS')}
                          spids: [782]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_G_dir'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:_G_dir)
                              op: assign_op.Equal
                              rhs: {<.>}
                              spids: [796]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: _G_prog_name
                      iter_words: [{($ Id.VSub_DollarName '$_G_progs_list')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ForEach
                              iter_name: _exeext
                              iter_words: [{(SQ )} {<.EXE>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:_G_path_prog)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$_G_dir') <'/'> 
                                              ($ Id.VSub_DollarName '$_G_prog_name') ($ Id.VSub_DollarName '$_exeext')
                                            }
                                          spids: [827]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<func_executable_p>} 
                                          {(DQ ($ Id.VSub_DollarName '$_G_path_prog'))}
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [
                                                  {(DQ ($ Id.VSub_DollarName '$_G_path_prog'))}
                                                  {<--version>}
                                                ]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<1>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'> <GNU> <Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:func_path_progs_result)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$_G_path_prog')}
                                                  spids: [868]
                                                )
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:_G_path_prog_found)
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                  spids: [871]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [863 866 874 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {($ Id.VSub_DollarName '$_G_check_func')} 
                                              {($ Id.VSub_DollarName '$_G_path_prog')}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:func_path_progs_result)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName '$func_check_prog_result')
                                                    }
                                                  spids: [885]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [877 878 889 -1]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$_G_path_prog_found')})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Break break>
                                          arg_word: {<3>}
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$_G_save_IFS')}
                  spids: [913]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$func_path_progs_result'))})
                (BraceGroup
                  children: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'no acceptable sed could be found in '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            ) <PATH>
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$SED'))})
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_sed_script)
                  op: assign_op.Equal
                  rhs: {<'s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/'>}
                  spids: [985]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_i
              iter_words: [{<1>} {<2>} {<3>} {<4>} {<5>} {<6>} {<7>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_sed_script)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName '$_G_sed_script') ($ Id.VSub_DollarName '$nl') 
                              ($ Id.VSub_DollarName '$_G_sed_script')
                            }
                          spids: [1013]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$_G_sed_script'))}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  words: [{<sed>} {<99q>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<conftest.sed>}
                    )
                  ]
                  do_fork: T
                )
              ]
              negated: F
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_sed_script)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [1041]
                )
              ]
            )
            (command.ShFunction
              name: func_check_prog_sed
              body: 
                (BraceGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_path_prog)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [1054]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_count)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1059]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<printf>} {<0123456789>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<conftest.in>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [{<cat>} {<conftest.in>} {<conftest.in>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.tmp>}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<mv>} {<conftest.tmp>} {<conftest.in>})
                            (C {<cp>} {<conftest.in>} {<conftest.nl>})
                            (command.Simple
                              words: [{<echo>} {(SQ )}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.nl>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {(DQ ($ Id.VSub_DollarName '$_G_path_prog'))}
                                    {<-f>}
                                    {<conftest.sed>}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<conftest.nl>}
                                    )
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<conftest.out>}
                                    )
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [{<diff>} {<conftest.out>} {<conftest.nl>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                    (redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_count)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$_G_count')} 
                                            {<Id.Lit_Other '+'>} {<1>}
                                          )
                                      )
                                    }
                                  spids: [1152]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$_G_count'))} 
                                              {<-gt>} {(DQ ($ Id.VSub_DollarName '$_G_path_prog_max'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_check_prog_result)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$_G_path_prog')}
                                          spids: [1188]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:_G_path_prog_max)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$_G_count')}
                                          spids: [1192]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1166 1181]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<10>} {<-lt>} {(DQ ($ Id.VSub_DollarName '$_G_count'))})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<rm>} {<-f>} {<conftest.in>} {<conftest.tmp>} {<conftest.nl>} {<conftest.out>})
                  ]
                )
            )
            (C {<func_path_progs>} {(DQ <'sed gsed'>)} {<func_check_prog_sed>} 
              {($ Id.VSub_DollarName '$PATH') <Id.Lit_Colon ':'> <'/usr/xpg4/bin'>}
            )
            (C {<rm>} {<-f>} {<conftest.sed>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SED)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_path_progs_result')}
                  spids: [1258]
                )
              ]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$GREP'))})
        (BraceGroup
          children: [
            (command.ShFunction
              name: func_check_prog_grep
              body: 
                (BraceGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_path_prog)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [1293]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_count)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1298]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_path_prog_max)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1302]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<printf>} {<0123456789>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<conftest.in>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [{<cat>} {<conftest.in>} {<conftest.in>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.tmp>}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<mv>} {<conftest.tmp>} {<conftest.in>})
                            (C {<cp>} {<conftest.in>} {<conftest.nl>})
                            (command.Simple
                              words: [{<echo>} {(SQ <GREP>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.nl>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {(DQ ($ Id.VSub_DollarName '$_G_path_prog'))}
                                    {<-e>}
                                    {(SQ <'GREP$'>)}
                                    {<-e>}
                                    {(SQ <'-(cannot match)-'>)}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<conftest.nl>}
                                    )
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<conftest.out>}
                                    )
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [{<diff>} {<conftest.out>} {<conftest.nl>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                    (redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_count)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$_G_count')} 
                                            {<Id.Lit_Other '+'>} {<1>}
                                          )
                                      )
                                    }
                                  spids: [1404]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$_G_count'))} 
                                              {<-gt>} {(DQ ($ Id.VSub_DollarName '$_G_path_prog_max'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_check_prog_result)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$_G_path_prog')}
                                          spids: [1440]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:_G_path_prog_max)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$_G_count')}
                                          spids: [1444]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1418 1433]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<10>} {<-lt>} {(DQ ($ Id.VSub_DollarName '$_G_count'))})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<rm>} {<-f>} {<conftest.in>} {<conftest.tmp>} {<conftest.nl>} {<conftest.out>})
                  ]
                )
            )
            (C {<func_path_progs>} {(DQ <'grep ggrep'>)} {<func_check_prog_grep>} 
              {($ Id.VSub_DollarName '$PATH') <Id.Lit_Colon ':'> <'/usr/xpg4/bin'>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GREP)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_path_progs_result')}
                  spids: [1503]
                )
              ]
            )
          ]
        )
      ]
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name CP>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <'cp -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name ECHO>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ <'printf %s'> <Id.Lit_BadBackslash '\\'> <n>)}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name EGREP>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ ($ Id.VSub_DollarName '$GREP') <' -E'>)}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name FGREP>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ ($ Id.VSub_DollarName '$GREP') <' -F'>)}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LN_S>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <'ln -s'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MAKE>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <make>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MKDIR>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <mkdir>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MV>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <'mv -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name RM>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <'rm -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name SHELL>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: 
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name CONFIG_SHELL>
                      suffix_op: 
                        (suffix_op.Unary
                          tok: <Id.VTest_Hyphen ->
                          arg_word: {<Id.Lit_Slash '/'> <bin> <Id.Lit_Slash '/'> <sh>}
                        )
                    )
                  )
                }
            )
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_dirname)
          op: assign_op.Equal
          rhs: {(SQ <'s|/[^/]*$||'>)}
          spids: [1656]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_basename)
          op: assign_op.Equal
          rhs: {(SQ <'s|^.*/||'>)}
          spids: [1661]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s|\\([`"$\\\\]\\)|\\\\\\1|g'>)}
          spids: [1673]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_double_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s/\\(["`\\\\]\\)/\\\\\\1/g'>)}
          spids: [1682]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_make_literal_regex)
          op: assign_op.Equal
          rhs: {(SQ <'s|[].[^$\\\\*\\/]|\\\\&|g'>)}
          spids: [1694]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_naive_backslashify)
          op: assign_op.Equal
          rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
          spids: [1709]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_bs)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\'>)}
          spids: [1730]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_bs2)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\'>)}
          spids: [1735]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_bs4)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\\\\\\\\\'>)}
          spids: [1740]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_G_dollar)
          op: assign_op.Equal
          rhs: {(SQ <'\\$'>)}
          spids: [1745]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_double_backslash)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'  s/'> ($ Id.VSub_DollarName '$_G_bs4') <'/&'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'\n'> <'/g\n'> <'  s/^'> ($ Id.VSub_DollarName '$_G_bs2') ($ Id.VSub_DollarName '$_G_dollar') <'/'> 
                ($ Id.VSub_DollarName '$_G_bs') <'&/\n'> <'  s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'([^'> 
                ($ Id.VSub_DollarName '$_G_bs') <']'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <')'> 
                ($ Id.VSub_DollarName '$_G_bs2') ($ Id.VSub_DollarName '$_G_dollar') <'/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                <1> ($ Id.VSub_DollarName '$_G_bs2') ($ Id.VSub_DollarName '$_G_bs') ($ Id.VSub_DollarName '$_G_dollar') 
                <'/g\n'> <'  s/'> <Id.Lit_BadBackslash '\\'> <'n//g'>
              )
            }
          spids: [1750]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_SUCCESS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1835]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_FAILURE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [1838]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_MISMATCH)
          op: assign_op.Equal
          rhs: {<63>}
          spids: [1841]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_SKIP)
          op: assign_op.Equal
          rhs: {<77>}
          spids: [1847]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:debug_cmd)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name debug_cmd>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{(DQ <':'>)})
              )
            }
          spids: [1869]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exit_cmd)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [1878]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exit_status)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
          spids: [1903]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:progpath)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$0')}
          spids: [1922]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:progname)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$progpath'))})
                      (C {($ Id.VSub_DollarName '$SED')} {(DQ ($ Id.VSub_DollarName '$sed_basename'))})
                    ]
                    negated: F
                  )
              )
            }
          spids: [1929]
        )
      ]
    )
    (command.Case
      to_match: {($ Id.VSub_DollarName '$progpath')}
      arms: [
        (case_arm
          pat_list: [
            {<Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
            }
            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Star '*'>
            }
          ]
          spids: [1958 1970 1972 -1]
        )
        (case_arm
          pat_list: [
            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
            }
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                {(DQ ($ Id.VSub_DollarName '$progpath'))}
                              )
                              (C {($ Id.VSub_DollarName '$SED')} 
                                {(DQ ($ Id.VSub_DollarName '$sed_dirname'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [1984]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            ops: [Id.Op_DAmp]
                            children: [(C {<cd>} {(DQ ($ Id.VSub_DollarName '$progdir'))}) (C {<pwd>})]
                          )
                      )
                    }
                  spids: [2003]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$progdir') <'/'> ($ Id.VSub_DollarName '$progname')}
                  spids: [2019]
                )
              ]
            )
          ]
          spids: [1975 1981 2025 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$IFS')}
                  spids: [2032]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name PATH_SEPARATOR>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<':'>})
                      )
                    }
                  spids: [2036]
                )
              ]
            )
            (command.ForEach
              iter_name: progdir
              iter_words: [{($ Id.VSub_DollarName '$PATH')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$_G_IFS')}
                          spids: [2056]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-x>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$progdir') <'/'> 
                              ($ Id.VSub_DollarName '$progname')
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Break break>
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$_G_IFS')}
                  spids: [2078]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$progdir'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:progdir)
                      op: assign_op.Equal
                      rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
                      spids: [2092]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$progdir') <'/'> ($ Id.VSub_DollarName '$progname')}
                  spids: [2100]
                )
              ]
            )
          ]
          spids: [2028 2029 2106 -1]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [2132]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_quiet)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [2135]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_verbose)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [2138]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:warning_categories)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [2151]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:warning_func)
          op: assign_op.Equal
          rhs: {<func_warn_and_continue>}
          spids: [2163]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_warning_types)
          op: assign_op.Equal
          rhs: {<all>}
          spids: [2176]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:require_term_colors)
          op: assign_op.Equal
          rhs: {<func_require_term_colors>}
          spids: [2232]
        )
      ]
    )
    (command.ShFunction
      name: func_require_term_colors
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-t>} {<1>})
                (BraceGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name COLORTERM>
                                suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<set>})
                              )
                            )
                          }
                        )
                        (C {<Id.Lit_Colon ':'>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Name USE_ANSI_COLORS>
                              suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <1>)})
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<1>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$USE_ANSI_COLORS'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tc_reset)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[0m'>)}
                                  spids: [2316]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:tc_bold)
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[1m'>)}
                                      spids: [2322]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tc_standout)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[7m'>)}
                                  spids: [2328]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:tc_red)
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[31m'>)}
                                      spids: [2334]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tc_green)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[32m'>)}
                                  spids: [2340]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:tc_blue)
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[34m'>)}
                                      spids: [2346]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tc_cyan)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[36m'>)}
                                  spids: [2352]
                                )
                              ]
                            )
                          ]
                          spids: [2296 2309]
                        )
                      ]
                      else_action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<tput>} {<sgr0>}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  )
                                )
                              }
                            )
                            (BraceGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:tc_reset)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: (C {<tput>} {<sgr0>})
                                          )
                                        }
                                      spids: [2387]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<bold>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_bold)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<bold>})
                                              )
                                            }
                                          spids: [2416]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:tc_standout)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$tc_bold')}
                                      spids: [2426]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<smso>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_standout)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<smso>})
                                              )
                                            }
                                          spids: [2449]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<setaf>} {<1>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_red)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<setaf>} {<1>})
                                              )
                                            }
                                          spids: [2480]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<setaf>} {<2>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_green)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<setaf>} {<2>})
                                              )
                                            }
                                          spids: [2513]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<setaf>} {<4>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_blue)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<setaf>} {<4>})
                                              )
                                            }
                                          spids: [2546]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [{<tput>} {<setaf>} {<5>}]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tc_cyan)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<tput>} {<setaf>} {<5>})
                                              )
                                            }
                                          spids: [2579]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:require_term_colors)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [2601]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<set>} {<Id.Lit_Equals '='>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name BASH_VERSION>
                            suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<set>})
                          ) 
                          (braced_var_sub
                            token: <Id.VSub_Name ZSH_VERSION>
                            suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<set>})
                          )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name _G_HAVE_ARITH_OP>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <yes>)})
                )
              }
            )
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name _G_HAVE_XSI_OPS>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <yes>)})
                )
              }
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$BASH_VERSION')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> <12> <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>}
                    {<3.0>}
                    {<3.0> <Id.Lit_Star '*'>}
                  ]
                  spids: [2713 2727 2729 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<Id.Lit_Colon ':'>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Name _G_HAVE_PLUSEQ_OP>
                          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{(DQ <yes>)})
                        )
                      }
                    )
                  ]
                  spids: [2732 2733 2747 -1]
                )
              ]
            )
          ]
          spids: [2655 2677]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_PLUSEQ_OP'))})
        (command.Subshell
          child: (C {<eval>} {(SQ <'x=a; x+=" b"; test "a b" = "$x"'>)})
          redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_G_HAVE_PLUSEQ_OP)
              op: assign_op.Equal
              rhs: {<yes>}
              spids: [2796]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                  {(DQ ($ Id.VSub_DollarName '$_G_HAVE_PLUSEQ_OP'))}
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_append ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> <'    eval "$1+=\\$2"\n'> 
                  <'  }'>
                )
              }
            )
          ]
          spids: [2800 2812]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_append
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (C {<eval>} 
                  {
                    (DQ ($ Id.VSub_Number '$1') <'='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                      ) ($ Id.VSub_Number '$1') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <2>
                    )
                  }
                )
              ]
            )
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_PLUSEQ_OP'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_append_quoted ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    func_quote_for_eval "$2"\n'> <'    eval "$1+=\\\\ \\$func_quote_for_eval_result"\n'> <'  }'>
                )
              }
            )
          ]
          spids: [2880 2893]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_append_quoted
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_Number '$2'))})
                (C {<eval>} 
                  {
                    (DQ ($ Id.VSub_Number '$1') <'='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                      ) ($ Id.VSub_Number '$1') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <' '> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                      ) <func_quote_for_eval_result>
                    )
                  }
                )
              ]
            )
        )
      ]
    )
    (command.ShFunction
      name: func_append_uniq
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<eval>} 
              {<Id.Lit_VarLike '_G_current_value='> (SQ <'`$ECHO $'>) ($ Id.VSub_Number '$1') (SQ <'`'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_delim)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {<expr>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_Colon ':'>} 
                            {(SQ <'\\(.\\)'>)}
                          )
                      )
                    }
                  spids: [3005]
                )
              ]
            )
            (command.Case
              to_match: 
                {($ Id.VSub_DollarName '$_G_delim') ($ Id.VSub_DollarName '$_G_current_value') 
                  ($ Id.VSub_DollarName '$_G_delim')
                }
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ ($ Id.VSub_Number '$2') ($ Id.VSub_DollarName '$_G_delim')) 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  spids: [3037 3043 3045 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<func_append>} {(DQ ($ Id.VSub_At '$@'))})]
                  spids: [3048 3049 3057 -1]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_ARITH_OP'))})
        (command.Subshell
          child: (C {<eval>} {(SQ <'test 2 = $(( 1 + 1 ))'>)})
          redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_G_HAVE_ARITH_OP)
              op: assign_op.Equal
              rhs: {<yes>}
              spids: [3103]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_ARITH_OP'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_arith ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    func_arith_result=$(( $* ))\n'> <'  }'>
                )
              }
            )
          ]
          spids: [3107 3120]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_arith
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_arith_result)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<expr>} {(DQ ($ Id.VSub_At '$@'))})
                          )
                        }
                      spids: [3150]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_b)
                  op: assign_op.Equal
                  rhs: {(SQ <'func_basename_result=${1##*/}'>)}
                  spids: [3208]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_d)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ <'case $1 in\n'> <'        */*) func_dirname_result=${1%/*}$2 ;;\n'> 
                        <'        *  ) func_dirname_result=$3        ;;\n'> <'      esac'>
                      )
                    }
                  spids: [3214]
                )
              ]
            )
          ]
          spids: [3180 3193]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_b)
              op: assign_op.Equal
              rhs: {(SQ <'func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'>)}
              spids: [3230]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_d)
              op: assign_op.Equal
              rhs: 
                {
                  (SQ <'func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`\n'> 
                    <'      if test "X$func_dirname_result" = "X$1"; then\n'> <'        func_dirname_result=$3\n'> <'      else\n'> 
                    <'        func_append func_dirname_result "$2"\n'> <'      fi'>
                  )
                }
              spids: [3236]
            )
          ]
        )
      ]
    )
    (C {<eval>} 
      {(SQ <'func_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ Id.VSub_DollarName '$_b')) (SQ <'\n'> <'}'>)
      }
    )
    (C {<eval>} 
      {(SQ <'func_dirname ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ Id.VSub_DollarName '$_d')) (SQ <'\n'> <'}'>)
      }
    )
    (C {<eval>} 
      {(SQ <'func_dirname_and_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ Id.VSub_DollarName '$_b')) (SQ <'\n'> <'    '>) (DQ ($ Id.VSub_DollarName '$_d')) (SQ <'\n'> <'}'>)
      }
    )
    (command.ShFunction
      name: func_echo
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '$*')}
                  spids: [3382]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_echo_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$IFS')}
                  spids: [3387]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nl')}
                  spids: [3391]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_line
              iter_words: [{($ Id.VSub_DollarName '$_G_message')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_echo_IFS')}
                          spids: [3407]
                        )
                      ]
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ ($ Id.VSub_DollarName '$progname') <': '> ($ Id.VSub_DollarName '$_G_line'))
                      }
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_echo_IFS')}
                  spids: [3423]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_echo_all
      body: (BraceGroup children:[(C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Star '$*'))})])
    )
    (command.ShFunction
      name: func_echo_infix_1
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {($ Id.VSub_DollarName '$require_term_colors')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_G_infix)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [3485]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_indent)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$_G_infix')}
                  spids: [3492]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_prefix)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$progname') <': '> ($ Id.VSub_DollarName '$_G_infix') 
                        <': '>
                      )
                    }
                  spids: [3496]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '$*')}
                  spids: [3505]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_tc
              iter_words: [
                {(DQ ($ Id.VSub_DollarName '$tc_reset'))}
                {(DQ ($ Id.VSub_DollarName '$tc_bold'))}
                {(DQ ($ Id.VSub_DollarName '$tc_standout'))}
                {(DQ ($ Id.VSub_DollarName '$tc_red'))}
                {(DQ ($ Id.VSub_DollarName '$tc_green'))}
                {(DQ ($ Id.VSub_DollarName '$tc_blue'))}
                {(DQ ($ Id.VSub_DollarName '$tc_cyan'))}
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_G_tc'))})
                        (BraceGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_esc_tc)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$_G_tc'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName '$sed_make_literal_regex')
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [3565]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_indent)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$_G_indent'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (DQ <'s|'> ($ Id.VSub_DollarName '$_G_esc_tc') 
                                                    <'||g'>
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [3585]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_indent)
                  op: assign_op.Equal
                  rhs: 
                    {(DQ ($ Id.VSub_DollarName '$progname') <': '>) 
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {(DQ ($ Id.VSub_DollarName '$_G_indent'))})
                              (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s|.| |g'>)})
                            ]
                            negated: F
                          )
                      ) (DQ <'  '>)
                    }
                  spids: [3613]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_echo_infix_1_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$IFS')}
                  spids: [3644]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nl')}
                  spids: [3648]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_line
              iter_words: [{($ Id.VSub_DollarName '$_G_message')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_echo_infix_1_IFS')}
                          spids: [3664]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {($ Id.VSub_DollarName '$ECHO')}
                        {
                          (DQ ($ Id.VSub_DollarName '$_G_prefix') ($ Id.VSub_DollarName '$tc_bold') 
                            ($ Id.VSub_DollarName '$_G_line') ($ Id.VSub_DollarName '$tc_reset')
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_prefix)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$_G_indent')}
                          spids: [3681]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_echo_infix_1_IFS')}
                  spids: [3688]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_error
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {($ Id.VSub_DollarName '$require_term_colors')})
            (command.Simple
              words: [
                {<func_echo_infix_1>}
                {
                  (DQ <'  '> ($ Id.VSub_DollarName '$tc_standout') (${ Id.VSub_Name tc_red) <error> 
                    ($ Id.VSub_DollarName '$tc_reset')
                  )
                }
                {(DQ ($ Id.VSub_Star '$*'))}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_fatal_error
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_error>} {(DQ ($ Id.VSub_Star '$*'))})
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_grep
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$GREP')}
                {(DQ ($ Id.VSub_Number '$1'))}
                {(DQ ($ Id.VSub_Number '$2'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))})
        (command.Subshell
          child: 
            (C {<eval>} 
              {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
            )
          redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_G_HAVE_XSI_OPS)
              op: assign_op.Equal
              rhs: {<yes>}
              spids: [3861]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_len ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    func_len_result=${#1}\n'> <'  }'>
                )
              }
            )
          ]
          spids: [3865 3878]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_len
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_len_result)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.AndOr
                                ops: [Id.Op_DPipe]
                                children: [
                                  (command.Simple
                                    words: [
                                      {<expr>}
                                      {(DQ ($ Id.VSub_Number '$1'))}
                                      {<Id.Lit_Colon ':'>}
                                      {(DQ <'.*'>)}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                  (C {<echo>} {($ Id.VSub_DollarName '$max_cmd_len')})
                                ]
                              )
                          )
                        }
                      spids: [3908]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.ShFunction
      name: func_mkdir_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_directory_path)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [3962]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_dir_list)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [3966]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_G_directory_path'))})
                                (C {<test>} {<Id.Lit_Colon ':'>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$opt_dry_run'))}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$_G_directory_path')}
                      arms: [
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_directory_path)
                                  op: assign_op.Equal
                                  rhs: {<'./'> ($ Id.VSub_DollarName '$_G_directory_path')}
                                  spids: [4013]
                                )
                              ]
                            )
                          ]
                          spids: [4009 4011 4017 -1]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName '$_G_directory_path'))}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_dir_list)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$_G_directory_path') <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName '$_G_dir_list')
                                    }
                                  spids: [4052]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$_G_directory_path')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                  spids: [4069 4072 4074 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [4076 4077 4081 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_directory_path)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$_G_directory_path'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName '$sed_dirname'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [4091]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_dir_list)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$_G_dir_list'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s|:*$||'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [4116]
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_mkdir_p_IFS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$IFS')}
                              spids: [4137]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [4141]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: _G_dir
                      iter_words: [{($ Id.VSub_DollarName '$_G_dir_list')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_mkdir_p_IFS')}
                                  spids: [4157]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName '$MKDIR')}
                                    {(DQ ($ Id.VSub_DollarName '$_G_dir'))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (C {<Id.Lit_Colon ':'>})
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_mkdir_p_IFS')}
                          spids: [4190]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$_G_directory_path'))})
                        (C {<func_fatal_error>} 
                          {(DQ <'Failed to create \''> ($ Id.VSub_Number '$1') <'\''>)}
                        )
                      ]
                    )
                  ]
                  spids: [3970 3994]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mktempdir
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_template)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name TMPDIR>
                        suffix_op: 
                          (suffix_op.Unary
                            tok: <Id.VTest_Hyphen ->
                            arg_word: {<Id.Lit_Slash '/'> <tmp>}
                          )
                      ) <'/'> 
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: 
                          (suffix_op.Unary
                            tok: <Id.VTest_Hyphen ->
                            arg_word: {($ Id.VSub_DollarName '$progname')}
                          )
                      )
                    }
                  spids: [4253]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<Id.Lit_Colon ':'>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$opt_dry_run'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_tmpdir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$_G_template') <-> ($ Id.VSub_Dollar '$$')}
                          spids: [4289]
                        )
                      ]
                    )
                  ]
                  spids: [4269 4282]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_G_tmpdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                words: [
                                  {<mktemp>}
                                  {<-d>}
                                  {(DQ ($ Id.VSub_DollarName '$_G_template') <-XXXXXXXX>)}
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                          )
                        }
                      spids: [4303]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName '$_G_tmpdir'))}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:_G_tmpdir)
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName '$_G_template') <-> 
                                  (braced_var_sub
                                    token: <Id.VSub_Name RANDOM>
                                    suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                                  ) ($ Id.VSub_Dollar '$$')
                                }
                              spids: [4342]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_mktempdir_umask)
                              op: assign_op.Equal
                              rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<umask>}))}
                              spids: [4354]
                            )
                          ]
                        )
                        (C {<umask>} {<0077>})
                        (C {($ Id.VSub_DollarName '$MKDIR')} {(DQ ($ Id.VSub_DollarName '$_G_tmpdir'))})
                        (C {<umask>} {($ Id.VSub_DollarName '$func_mktempdir_umask')})
                      ]
                      spids: [4322 4335]
                    )
                  ]
                )
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$_G_tmpdir'))})
                    (C {<func_fatal_error>} 
                      {
                        (DQ <'cannot create temporary directory \''> 
                          ($ Id.VSub_DollarName '$_G_tmpdir') <'\''>
                        )
                      }
                    )
                  ]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$_G_tmpdir'))})
          ]
        )
    )
    (command.ShFunction
      name: func_normal_abspath
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_pathcar)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|^/\\([^/]*\\).*$|\\1|'>)}
                  spids: [4453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_pathcdr)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|^/[^/]*||'>)}
                  spids: [4459]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_removedotparts)
                  op: assign_op.Equal
                  rhs: {(SQ <':dotsl\n'> <'\t\ts|/\\./|/|g\n'> <'\t\tt dotsl\n'> <'\t\ts|/\\.$|/|'>)}
                  spids: [4465]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_collapseslashes)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|/\\{1,\\}|/|g'>)}
                  spids: [4474]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_finalslash)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|/*$|/|'>)}
                  spids: [4480]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [4491]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [4494]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_altnamespace)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [4498]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$func_normal_abspath_tpath')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} 
                      {(DQ (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [4535]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [4508 4510 4542 -1]
                )
                (case_arm
                  pat_list: [{<'///'> <Id.Lit_Star '*'>}]
                  spids: [4557 4559 4566 -1]
                )
                (case_arm
                  pat_list: [{<'//'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_altnamespace)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [4586]
                        )
                      ]
                    )
                  ]
                  spids: [4569 4571 4590 -1]
                )
                (case_arm
                  pat_list: [{<'/'> <Id.Lit_Star '*'>}]
                  spids: [4593 4595 4602 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                          op: assign_op.Equal
                          rhs: 
                            {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/'> 
                              ($ Id.VSub_DollarName '$func_normal_abspath_tpath')
                            }
                          spids: [4613]
                        )
                      ]
                    )
                  ]
                  spids: [4605 4606 4623 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                              )
                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$_G_removedotparts'))} {<-e>} {(DQ ($ Id.VSub_DollarName '$_G_collapseslashes'))} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$_G_finalslash'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [4642]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<Id.Lit_Colon ':'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<'/'>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$func_normal_abspath_result')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                                          op: assign_op.Equal
                                          rhs: {<'/'>}
                                          spids: [4727]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4713 4724]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [4693 4706]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tcomponent)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$_G_pathcar'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [4740]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$_G_pathcdr'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [4767]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$func_normal_abspath_tcomponent')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          spids: [4805 4807 4814 -1]
                        )
                        (case_arm
                          pat_list: [{<..>}]
                          action: [
                            (C {<func_dirname>} 
                              {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_result'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [4832]
                                )
                              ]
                            )
                          ]
                          spids: [4817 4818 4836 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_append>} {<func_normal_abspath_result>} 
                              {(DQ <'/'> ($ Id.VSub_DollarName '$func_normal_abspath_tcomponent'))}
                            )
                          ]
                          spids: [4839 4840 4857 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$func_normal_abspath_altnamespace') 
                      ($ Id.VSub_DollarName '$func_normal_abspath_result')
                    }
                  spids: [4870]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_notquiet
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_quiet')})
                (C {<func_echo>} 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Number 1>
                      suffix_op: 
                        (suffix_op.Unary
                          tok: <Id.VTest_Plus '+'>
                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                        )
                    )
                  }
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
        )
    )
    (command.ShFunction
      name: func_relative_path
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [4954]
                )
              ]
            )
            (C {<func_normal_abspath>} {(DQ ($ Id.VSub_Number '$1'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_tlibdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_normal_abspath_result')}
                  spids: [4964]
                )
              ]
            )
            (C {<func_normal_abspath>} {(DQ ($ Id.VSub_Number '$2'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_tbindir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_normal_abspath_result')}
                  spids: [4975]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<Id.Lit_Colon ':'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$func_relative_path_tbindir')}
                      arms: [
                        (case_arm
                          pat_list: [{($ Id.VSub_DollarName '$func_relative_path_tlibdir')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [5011]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [5003 5004 5017 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ Id.VSub_DollarName '$func_relative_path_tlibdir') <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_stripname>} 
                              {(DQ ($ Id.VSub_DollarName '$func_relative_path_tlibdir'))} {(SQ )} {(DQ ($ Id.VSub_DollarName '$func_relative_path_tbindir'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [5043]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$func_relative_path_result')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                          op: assign_op.Equal
                                          rhs: {<.>}
                                          spids: [5061]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [5047 5058]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [5020 5022 5071 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_dirname>} {($ Id.VSub_DollarName '$func_relative_path_tlibdir')})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tlibdir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [5083]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$func_relative_path_tlibdir')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<'../'> 
                                              ($ Id.VSub_DollarName '$func_relative_path_result')
                                            }
                                          spids: [5105]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_relative_path_tbindir')}
                                          spids: [5110]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [5087 5098]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                  op: assign_op.Equal
                                  rhs: {<'../'> ($ Id.VSub_DollarName '$func_relative_path_result')}
                                  spids: [5120]
                                )
                              ]
                            )
                          ]
                          spids: [5074 5075 5125 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} 
              {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                  spids: [5153]
                )
              ]
            )
            (C {<func_stripname>} {(SQ <'/'>)} {(SQ <'/'>)} 
              {(DQ ($ Id.VSub_DollarName '$func_relative_path_tcancelled'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_append>} {<func_relative_path_result>} 
                      {(DQ <'/'> ($ Id.VSub_DollarName '$func_stripname_result'))}
                    )
                  ]
                  spids: [5172 5183]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {(SQ <'./'>)} {(SQ )} 
                      {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [5232]
                        )
                      ]
                    )
                  ]
                  spids: [5204 5215]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                      op: assign_op.Equal
                      rhs: {<.>}
                      spids: [5250]
                    )
                  ]
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
        )
    )
    (command.ShFunction
      name: func_quote_for_eval
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_quote_for_eval_unquoted_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [5300]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_quote_for_eval_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [5303]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<test>} {<0>} {<-lt>} {($ Id.VSub_Pound '$#')})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_Number '$1')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\\\'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_unquoted_arg)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<printf>} {(SQ <'%s\\n'>)} 
                                                {(DQ ($ Id.VSub_Number '$1'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [5338]
                                )
                              ]
                            )
                          ]
                          spids: [5327 5335 5362 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_unquoted_arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number '$1')}
                                  spids: [5369]
                                )
                              ]
                            )
                          ]
                          spids: [5365 5366 5372 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ 
                                          ($ Id.VSub_DollarName 
'$func_quote_for_eval_unquoted_result'
                                          )
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<func_quote_for_eval_unquoted_result>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_unquoted_arg'))}
                            )
                          ]
                          spids: [5378 5389]
                        )
                      ]
                      else_action: [
                        (C {<func_append>} {<func_quote_for_eval_unquoted_result>} 
                          {(DQ ($ Id.VSub_DollarName '$_G_unquoted_arg'))}
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$_G_unquoted_arg')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\['>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\#'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\&'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\('>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\{'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\|'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\<'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\?'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                            {(DQ )}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_quoted_arg)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                      ($ Id.VSub_DollarName '$_G_unquoted_arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                    }
                                  spids: [5477]
                                )
                              ]
                            )
                          ]
                          spids: [5445 5474 5483 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:_G_quoted_arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$_G_unquoted_arg')}
                                  spids: [5490]
                                )
                              ]
                            )
                          ]
                          spids: [5486 5487 5494 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<func_quote_for_eval_result>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_quoted_arg'))}
                            )
                          ]
                          spids: [5501 5512]
                        )
                      ]
                      else_action: [
                        (C {<func_append>} {<func_quote_for_eval_result>} 
                          {(DQ ($ Id.VSub_DollarName '$_G_quoted_arg'))}
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: func_quote_for_expand
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                      ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_arg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Number '$1'))})
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$sed_double_quote_subst'))} {<-e>} {(DQ ($ Id.VSub_DollarName '$sed_double_backslash'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [5590]
                        )
                      ]
                    )
                  ]
                  spids: [5580 5587 5622 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [5629]
                        )
                      ]
                    )
                  ]
                  spids: [5625 5626 5632 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$_G_arg')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\['>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\#'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\&'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\('>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\{'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\|'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\<'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\?'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                    {(DQ )}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_arg)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                              ($ Id.VSub_DollarName '$_G_arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                            }
                          spids: [5694]
                        )
                      ]
                    )
                  ]
                  spids: [5662 5691 5700 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_quote_for_expand_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$_G_arg')}
                  spids: [5707]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_stripname ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\n'> <'    # positional parameters, so assign one to ordinary variable first.\n'> 
                  <'    func_stripname_result=$3\n'> <'    func_stripname_result=${func_stripname_result#"$1"}\n'> 
                  <'    func_stripname_result=${func_stripname_result%"$2"}\n'> <'  }'>
                )
              }
            )
          ]
          spids: [5732 5745]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_stripname
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (command.Case
                  to_match: {($ Id.VSub_Number '$2')}
                  arms: [
                    (case_arm
                      pat_list: [{<.> <Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_stripname_result)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                            {(DQ ($ Id.VSub_Number '$3'))}
                                          )
                                          (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                            {(DQ <'s%^'> ($ Id.VSub_Number '$1') <'%%'>)} {<-e>} 
                                            {
                                              (DQ <'s%'> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\\\'>
                                                ) ($ Id.VSub_Number '$2') <Id.Lit_Dollar '$'> <'%%'>
                                              )
                                            }
                                          )
                                        ]
                                        negated: F
                                      )
                                  )
                                }
                              spids: [5790]
                            )
                          ]
                        )
                      ]
                      spids: [5786 5788 5827 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_stripname_result)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                            {(DQ ($ Id.VSub_Number '$3'))}
                                          )
                                          (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                            {(DQ <'s%^'> ($ Id.VSub_Number '$1') <'%%'>)} {<-e>} {(DQ <'s%'> ($ Id.VSub_Number '$2') <Id.Lit_Dollar '$'> <'%%'>)}
                                          )
                                        ]
                                        negated: F
                                      )
                                  )
                                }
                              spids: [5833]
                            )
                          ]
                        )
                      ]
                      spids: [5830 5831 5866 -1]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.ShFunction
      name: func_show_eval
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [5905]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 2>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{(SQ <':'>)})
                      )
                    }
                  spids: [5909]
                )
              ]
            )
            (C {<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName '$_G_cmd'))})
            (C {<eval>} {(DQ <'func_notquiet '> ($ Id.VSub_DollarName '$func_quote_for_expand_result'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_G_cmd'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_status)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [5950]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<0>} {<-ne>} {(DQ ($ Id.VSub_DollarName '$_G_status'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (DQ <'(exit '> ($ Id.VSub_DollarName '$_G_status') <'); '> 
                                  ($ Id.VSub_DollarName '$_G_fail_exp')
                                )
                              }
                            )
                          ]
                          spids: [5954 5967]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_show_eval_locale
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [6016]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 2>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{(SQ <':'>)})
                      )
                    }
                  spids: [6020]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_quiet')})
                (BraceGroup
                  children: [
                    (C {<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName '$_G_cmd'))})
                    (C {<eval>} 
                      {(DQ <'func_echo '> ($ Id.VSub_DollarName '$func_quote_for_expand_result'))}
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {<eval>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$_G_user_locale') <'\n'> <'\t    '> 
                          ($ Id.VSub_DollarName '$_G_cmd')
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_status)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [6074]
                        )
                      ]
                    )
                    (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_G_safe_locale'))})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<0>} {<-ne>} {(DQ ($ Id.VSub_DollarName '$_G_status'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (DQ <'(exit '> ($ Id.VSub_DollarName '$_G_status') <'); '> 
                                  ($ Id.VSub_DollarName '$_G_fail_exp')
                                )
                              }
                            )
                          ]
                          spids: [6085 6098]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_tr_sh
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <a-zA-Z0-9_> 
                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_tr_sh_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Number '$1'))})
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(SQ <'s/^\\([0-9]\\)/_\\1/'>)} {<-e>} {(SQ <'s/[^a-zA-Z0-9_]/_/g'>)}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [6173]
                        )
                      ]
                    )
                  ]
                  spids: [6157 6170 6207 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_tr_sh_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [6215]
                        )
                      ]
                    )
                  ]
                  spids: [6210 6212 6219 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_verbose
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$opt_verbose')})
                (C {<func_echo>} {(DQ ($ Id.VSub_Star '$*'))})
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
        )
    )
    (command.ShFunction
      name: func_warn_and_continue
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {($ Id.VSub_DollarName '$require_term_colors')})
            (command.Simple
              words: [
                {<func_echo_infix_1>}
                {(DQ (${ Id.VSub_Name tc_red) <warning> ($ Id.VSub_DollarName '$tc_reset'))}
                {(DQ ($ Id.VSub_Star '$*'))}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_warning
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$warning_categories') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number '$1') <' '>) <Id.Lit_Star '*'>}
                  ]
                  spids: [6358 6365 6367 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_internal_error>} 
                      {(DQ <'invalid warning category \''> ($ Id.VSub_Number '$1') <'\''>)}
                    )
                  ]
                  spids: [6370 6371 6381 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_category)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [6388]
                )
              ]
            )
            (C {<shift>})
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$opt_warning_types') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$_G_category') <' '>) 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (C {($ Id.VSub_DollarName '$warning_func')} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VTest_Plus '+'>
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  ]
                  spids: [6407 6414 6426 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_sort_ver
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Pipeline
              children: [
                (C {<printf>} {(SQ <'%s\\n%s\\n'>)} {(DQ ($ Id.VSub_Number '$1'))} 
                  {(DQ ($ Id.VSub_Number '$2'))}
                )
                (C {<sort>} {<-t.>} {<-k>} {<1> <Id.Lit_Comma ','> <1n>} {<-k>} 
                  {<2> <Id.Lit_Comma ','> <2n>} {<-k>} {<3> <Id.Lit_Comma ','> <3n>} {<-k>} {<4> <Id.Lit_Comma ','> <4n>} {<-k>} 
                  {<5> <Id.Lit_Comma ','> <5n>} {<-k>} {<6> <Id.Lit_Comma ','> <6n>} {<-k>} {<7> <Id.Lit_Comma ','> <7n>} {<-k>} 
                  {<8> <Id.Lit_Comma ','> <8n>} {<-k>} {<9> <Id.Lit_Comma ','> <9n>}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: func_lt_ver
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<test>} {(DQ <x> ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
              {<x> 
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<func_sort_ver>} {(DQ ($ Id.VSub_Number '$1'))} 
                          {(DQ ($ Id.VSub_Number '$2'))}
                        )
                        (C {($ Id.VSub_DollarName '$SED')} {<1q>})
                      ]
                      negated: F
                    )
                )
              }
            )
          ]
        )
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:scriptversion)
              op: assign_op.Equal
              rhs: {<2014-01-07.03>}
              spids: [6645]
            )
          ]
        )
      terminator: <Id.Op_Semi _>
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:usage)
          op: assign_op.Equal
          rhs: {(SQ <'$progpath [OPTION]...'>)}
          spids: [6850]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:usage_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'       --debug        enable verbose shell tracing\n'> 
                <'   -W, --warnings=CATEGORY\n'> <'                      report the warnings falling in CATEGORY [all]\n'> 
                <'   -v, --verbose      verbosely report processing\n'> <'       --version      print version information and exit\n'> 
                <'   -h, --help         print short or long help message and exit\n'>
              )
            }
          spids: [6865]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:long_help_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'Warning categories include:\n'> 
                <'       \'all\'          show all warnings\n'> <'       \'none\'         turn off all the warnings\n'> 
                <'       \'error\'        warnings are treated as fatal errors'>
              )
            }
          spids: [6880]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:fatal_help)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Try \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                <'progname --help\' for more information.'>
              )
            }
          spids: [6893]
        )
      ]
    )
    (command.ShFunction
      name: func_hookable
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_append>} {<hookable_fns>} {(DQ <' '> ($ Id.VSub_Number '$1'))})
          ]
        )
    )
    (command.ShFunction
      name: func_add_hook
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$hookable_fns') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number '$1') <' '>) <Id.Lit_Star '*'>}
                  ]
                  spids: [6995 7002 7004 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_error>} 
                      {(DQ <'\''> ($ Id.VSub_Number '$1') <'\' does not accept hook functions.'>)}
                    )
                  ]
                  spids: [7007 7008 7018 -1]
                )
              ]
            )
            (C {<eval>} {<func_append>} {(${ Id.VSub_Number 1) <_hooks>} {(SQ <'" $2"'>)})
          ]
        )
    )
    (command.ShFunction
      name: func_remove_hook
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<eval>} 
              {(${ Id.VSub_Number 1) <Id.Lit_VarLike '_hooks='> (SQ <'`$ECHO "\\$'>) 
                ($ Id.VSub_Number '$1') (SQ <'_hooks" |$SED "s| '>) ($ Id.VSub_Number '$2') (SQ <'||"`'>)
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: func_run_hooks
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$hookable_fns') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number '$1') <' '>) <Id.Lit_Star '*'>}
                  ]
                  spids: [7129 7136 7138 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_error>} 
                      {(DQ <'\''> ($ Id.VSub_Number '$1') <'\' does not support hook funcions.n'>)}
                    )
                  ]
                  spids: [7141 7142 7152 -1]
                )
              ]
            )
            (command.Sentence
              child: 
                (C {<eval>} 
                  {<Id.Lit_VarLike '_G_hook_fns='> 
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_Number '$1') <_hooks>
                  }
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ForEach
              iter_name: _G_hook
              iter_words: [{($ Id.VSub_DollarName '$_G_hook_fns')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<eval>} {($ Id.VSub_DollarName '$_G_hook')} {(SQ <'"$@"'>)})
                    (C {<eval>} 
                      {<Id.Lit_VarLike '_G_hook_result='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        ) (${ Id.VSub_Name _G_hook) <_result>
                      }
                    )
                    (command.Sentence
                      child: 
                        (C {<eval>} {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName '$_G_hook_result'))})
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                )
            )
            (C {<func_quote_for_eval>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_run_hooks_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [7240]
                )
              ]
            )
          ]
        )
    )
    (C {<func_hookable>} {<func_options>})
    (command.ShFunction
      name: func_options
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_options_prep>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (C {<eval>} {<func_parse_options>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name func_options_prep_result>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_DollarName '$func_options_prep_result'))}
                    )
                )
              }
            )
            (C {<eval>} {<func_validate_options>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name func_parse_options_result>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_DollarName '$func_parse_options_result'))}
                    )
                )
              }
            )
            (C {<eval>} {<func_run_hooks>} {<func_options>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name func_validate_options_result>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_DollarName '$func_validate_options_result'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_options_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_run_hooks_result')}
                  spids: [7541]
                )
              ]
            )
          ]
        )
    )
    (C {<func_hookable>} {<func_options_prep>})
    (command.ShFunction
      name: func_options_prep
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_verbose)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [7592]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_warning_types)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [7596]
                )
              ]
            )
            (C {<func_run_hooks>} {<func_options_prep>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_options_prep_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_run_hooks_result')}
                  spids: [7618]
                )
              ]
            )
          ]
        )
    )
    (C {<func_hookable>} {<func_parse_options>})
    (command.ShFunction
      name: func_parse_options
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_parse_options_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [7650]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<test>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_run_hooks>} {<func_parse_options>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VTest_Plus '+'>
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                    (command.Sentence
                      child: 
                        (C {<eval>} {<set>} {<dummy>} 
                          {(DQ ($ Id.VSub_DollarName '$func_run_hooks_result'))}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Break break>
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_opt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [7731]
                        )
                      ]
                    )
                    (C {<shift>})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$_G_opt')}
                      arms: [
                        (case_arm
                          pat_list: [{<--debug>} {<-x>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:debug_cmd)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'set -x'>)}
                                  spids: [7750]
                                )
                              ]
                            )
                            (C {<func_echo>} {(DQ <'enabling shell trace mode'>)})
                            (C {($ Id.VSub_DollarName '$debug_cmd')})
                          ]
                          spids: [7745 7748 7766 -1]
                        )
                        (case_arm
                          pat_list: [{<--no-warnings>} {<--no-warning>} {<--no-warn>}]
                          action: [
                            (C {<set>} {<dummy>} {<--warnings>} {<none>} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      tok: <Id.VTest_Plus '+'>
                                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                    )
                                )
                              }
                            )
                            (C {<shift>})
                          ]
                          spids: [7770 7775 7798 -1]
                        )
                        (case_arm
                          pat_list: [{<--warnings>} {<--warning>} {<-W>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='>} {<0>})
                                (C {<func_missing_arg>} {($ Id.VSub_DollarName '$_G_opt')})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.Case
                              to_match: 
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName '$warning_categories') <' '> 
                                    ($ Id.VSub_Number '$1')
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number '$1') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (C {<func_append_uniq>} {<opt_warning_types>} 
                                      {(DQ <' '> ($ Id.VSub_Number '$1'))}
                                    )
                                  ]
                                  spids: [7841 7848 7865 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <all>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:opt_warning_types)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$warning_categories')}
                                          spids: [7873]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7868 7870 7877 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <none>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:opt_warning_types)
                                          op: assign_op.Equal
                                          rhs: {<none>}
                                          spids: [7885]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:warning_func)
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                          spids: [7889]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7880 7882 7893 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <error>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:opt_warning_types)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$warning_categories')}
                                          spids: [7901]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:warning_func)
                                          op: assign_op.Equal
                                          rhs: {<func_fatal_error>}
                                          spids: [7905]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7896 7898 7909 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ <'unsupported warning category: \''> 
                                          ($ Id.VSub_Number '$1') <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [7912 7913 7927 -1]
                                )
                              ]
                            )
                            (C {<shift>})
                          ]
                          spids: [7802 7807 7936 -1]
                        )
                        (case_arm
                          pat_list: [{<--verbose>} {<-v>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_verbose)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [7945]
                                )
                              ]
                            )
                          ]
                          spids: [7940 7943 7948 -1]
                        )
                        (case_arm
                          pat_list: [{<--version>}]
                          action: [(C {<func_version>})]
                          spids: [7951 7952 7956 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}
                            {<-h>}
                          ]
                          action: [(C {<func_usage>})]
                          spids: [7959 7963 7967 -1]
                        )
                        (case_arm
                          pat_list: [{<--help>}]
                          action: [(C {<func_help>})]
                          spids: [7970 7971 7975 -1]
                        )
                        (case_arm
                          pat_list: [{<--> <Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_split_equals>} {(DQ ($ Id.VSub_DollarName '$_G_opt'))})
                            (C {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName '$func_split_equals_lhs'))} 
                              {(DQ ($ Id.VSub_DollarName '$func_split_equals_rhs'))} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      tok: <Id.VTest_Plus '+'>
                                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                    )
                                )
                              }
                            )
                            (C {<shift>})
                          ]
                          spids: [7983 7987 8022 -1]
                        )
                        (case_arm
                          pat_list: [{<-W> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_split_short_opt>} {(DQ ($ Id.VSub_DollarName '$_G_opt'))})
                            (C {<set>} {<dummy>} 
                              {(DQ ($ Id.VSub_DollarName '$func_split_short_opt_name'))} {(DQ ($ Id.VSub_DollarName '$func_split_short_opt_arg'))} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      tok: <Id.VTest_Plus '+'>
                                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                    )
                                )
                              }
                            )
                            (C {<shift>})
                          ]
                          spids: [8030 8032 8068 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>) 
                              <Id.Lit_Star '*'>
                            }
                            {<-h> <Id.Lit_Star '*'>}
                            {<-v> <Id.Lit_Star '*'>}
                            {<-x> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_split_short_opt>} {(DQ ($ Id.VSub_DollarName '$_G_opt'))})
                            (C {<set>} {<dummy>} 
                              {(DQ ($ Id.VSub_DollarName '$func_split_short_opt_name'))} {(DQ <-> ($ Id.VSub_DollarName '$func_split_short_opt_arg'))} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Number 1>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      tok: <Id.VTest_Plus '+'>
                                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                    )
                                )
                              }
                            )
                            (C {<shift>})
                          ]
                          spids: [8076 8088 8125 -1]
                        )
                        (case_arm
                          pat_list: [{<-->}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                          spids: [8129 8130 8134 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_fatal_help>} 
                              {
                                (DQ <'unrecognised option: \''> ($ Id.VSub_DollarName '$_G_opt') <'\''>)
                              }
                            )
                          ]
                          spids: [8137 8139 8149 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.Sentence
                              child: 
                                (C {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName '$_G_opt'))} 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Number 1>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          tok: <Id.VTest_Plus '+'>
                                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                        )
                                    )
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: (C {<shift>})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [8152 8153 8177 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_quote_for_eval>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_parse_options_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [8202]
                )
              ]
            )
          ]
        )
    )
    (C {<func_hookable>} {<func_validate_options>})
    (command.ShFunction
      name: func_validate_options
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$opt_warning_types'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:opt_warning_types)
                      op: assign_op.Equal
                      rhs: {(DQ <' '> ($ Id.VSub_DollarName '$warning_categories'))}
                      spids: [8251]
                    )
                  ]
                )
              ]
            )
            (C {<func_run_hooks>} {<func_validate_options>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (C {($ Id.VSub_DollarName '$exit_cmd')} {($ Id.VSub_DollarName '$EXIT_FAILURE')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_validate_options_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_run_hooks_result')}
                  spids: [8287]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_fatal_help
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<eval>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>} 
              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                (DQ <'Usage: '> ($ Id.VSub_DollarName '$usage')) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
            (C {<eval>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>} 
              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                (DQ ($ Id.VSub_DollarName '$fatal_help')) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
            (C {<func_error>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_help
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_usage_message>})
            (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$long_help_message'))})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: func_missing_arg
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_error>} {(DQ <'Missing argument for \''> ($ Id.VSub_Number '$1') <'\'.'>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:exit_cmd)
                  op: assign_op.Equal
                  rhs: {<Id.ControlFlow_Exit exit>}
                  spids: [8453]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))})
        (command.Subshell
          child: 
            (C {<eval>} 
              {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
            )
          redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_G_HAVE_XSI_OPS)
              op: assign_op.Equal
              rhs: {<yes>}
              spids: [8500]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))})
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_split_equals ()\n'> <'  {\n'> <'      $debug_cmd\n'> <'\n'> 
                  <'      func_split_equals_lhs=${1%%=*}\n'> <'      func_split_equals_rhs=${1#*=}\n'> <'      test "x$func_split_equals_lhs" = "x$1" \\\n'> 
                  <'        && func_split_equals_rhs=\n'> <'  }'>
                )
              }
            )
          ]
          spids: [8504 8516]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_split_equals
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_split_equals_lhs)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (C {<expr>} {(DQ <x> ($ Id.VSub_Number '$1'))} {<Id.Lit_Colon ':'>} 
                                {(SQ <'x\\([^=]*\\)'>)}
                              )
                          )
                        }
                      spids: [8557]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_split_equals_rhs)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [8580]
                    )
                  ]
                )
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$func_split_equals_lhs'))} 
                      {<Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_split_equals_rhs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (C {<expr>} {(DQ <x> ($ Id.VSub_Number '$1'))} {<Id.Lit_Colon ':'>} 
                                    {(SQ <'x[^=]*=\\(.*\\)$'>)}
                                  )
                              )
                            }
                          spids: [8601]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))})
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_split_short_opt ()\n'> <'  {\n'> <'      $debug_cmd\n'> <'\n'> 
                  <'      func_split_short_opt_arg=${1#??}\n'> <'      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\n'> <'  }'>
                )
              }
            )
          ]
          spids: [8645 8657]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_split_short_opt
          body: 
            (BraceGroup
              children: [
                (C {($ Id.VSub_DollarName '$debug_cmd')})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_split_short_opt_name)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (C {<expr>} {(DQ <x> ($ Id.VSub_Number '$1'))} {<Id.Lit_Colon ':'>} 
                                {(SQ <'x-\\(.\\)'>)}
                              )
                          )
                        }
                      spids: [8696]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_split_short_opt_arg)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (C {<expr>} {(DQ <x> ($ Id.VSub_Number '$1'))} {<Id.Lit_Colon ':'>} 
                                {(SQ <'x-.\\(.*\\)$'>)}
                              )
                          )
                        }
                      spids: [8719]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.ShFunction
      name: func_usage
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_usage_message>})
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'Run \''> ($ Id.VSub_DollarName '$progname') <' --help |'> 
                  (braced_var_sub
                    token: <Id.VSub_Name PAGER>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<more>})
                  ) <'\' for full usage'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: func_usage_message
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<eval>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>} 
              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                (DQ <'Usage: '> ($ Id.VSub_DollarName '$usage')) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
            (C {<echo>})
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$SED')}
                {<-n>}
                {
                  (SQ <'s|^# ||\n'> <'        /^Written by/{\n'> <'          x;p;x\n'> <'        }\n'> 
                    <'\th\n'> <'\t/^Written by/q'>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                )
              ]
              do_fork: T
            )
            (C {<echo>})
            (C {<eval>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>} 
              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                (DQ ($ Id.VSub_DollarName '$usage_message')) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: func_version
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<printf>} {(SQ <'%s\\n'>)} 
              {(DQ ($ Id.VSub_DollarName '$progname') <' '> ($ Id.VSub_DollarName '$scriptversion'))}
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$SED')}
                {<-n>}
                {
                  (SQ <'\n'> <'        /(C)/!b go\n'> <'        :more\n'> <'        /\\./!{\n'> 
                    <'          N\n'> <'          s|\\n# | |\n'> <'          b more\n'> <'        }\n'> <'        :go\n'> 
                    <'        /^# Written by /,/# warranty; / {\n'> <'          s|^# ||\n'> <'          s|^# *$||\n'> 
                    <'          s|\\((C)\\)[ 0-9,-]*[ ,-]\\([1-9][0-9]* \\)|\\1 \\2|\n'> <'          p\n'> <'        }\n'> <'        /^# Written by / {\n'> <'          s|^# ||\n'> 
                    <'          p\n'> <'        }\n'> <'        /^warranty; /q'>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                )
              ]
              do_fork: T
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:scriptversion)
          op: assign_op.Equal
          rhs: {(SQ <'(GNU libtool) 2.4.6'>)}
          spids: [8975]
        )
      ]
    )
    (command.ShFunction
      name: func_echo
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '$*')}
                  spids: [9006]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_echo_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$IFS')}
                  spids: [9011]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nl')}
                  spids: [9015]
                )
              ]
            )
            (command.ForEach
              iter_name: _G_line
              iter_words: [{($ Id.VSub_DollarName '$_G_message')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_echo_IFS')}
                          spids: [9031]
                        )
                      ]
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ ($ Id.VSub_DollarName '$progname') 
                          (braced_var_sub
                            token: <Id.VSub_Name opt_mode>
                            suffix_op: 
                              (suffix_op.Unary
                                tok: <Id.VTest_Plus '+'>
                                arg_word: {<': '> ($ Id.VSub_DollarName '$opt_mode')}
                              )
                          ) <': '> ($ Id.VSub_DollarName '$_G_line')
                        )
                      }
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_echo_IFS')}
                  spids: [9053]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_warning
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {($ Id.VSub_DollarName '$warning_func')} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:usage)
          op: assign_op.Equal
          rhs: {(SQ <'$progpath [OPTION]... [MODE-ARG]...'>)}
          spids: [9115]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:usage_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Options:\n'> <'       --config             show all configuration variables\n'> 
                <'       --debug              enable verbose shell tracing\n'> <'   -n, --dry-run            display commands without modifying any files\n'> 
                <'       --features           display basic configuration information and exit\n'> <'       --mode=MODE          use operation mode MODE\n'> 
                <'       --no-warnings        equivalent to \'-Wnone\'\n'> <'       --preserve-dup-deps  don\'t remove duplicate dependency libraries\n'> 
                <'       --quiet, --silent    don\'t print informational messages\n'> <'       --tag=TAG            use configuration variables from tag TAG\n'> 
                <'   -v, --verbose            print more informational messages than default\n'> <'       --version            print version information\n'> 
                <'   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]\n'> <'   -h, --help, --help-all   print short, long, or detailed help message\n'>
              )
            }
          spids: [9124]
        )
      ]
    )
    (command.ShFunction
      name: func_help
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_usage_message>})
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ ($ Id.VSub_DollarName '$long_help_message') <'\n'> <'\n'> 
                  <'MODE must be one of the following:\n'> <'\n'> <'       clean           remove files from the build directory\n'> 
                  <'       compile         compile a source file into a libtool object\n'> <'       execute         automatically set library path, then run a program\n'> 
                  <'       finish          complete the installation of libtool libraries\n'> <'       install         install libraries or executables\n'> 
                  <'       link            create a library or an executable\n'> <'       uninstall       remove libraries from an installed directory\n'> <'\n'> 
                  <'MODE-ARGS vary depending on the MODE.  When passed as first option,\n'> <'\'--mode=MODE\' may be abbreviated as \'MODE\' or a unique abbreviation of that.\n'> <'Try \''> 
                  ($ Id.VSub_DollarName '$progname') <' --help --mode=MODE\' for a more detailed description of MODE.\n'> <'\n'> 
                  <'When reporting a bug, please describe a test case to reproduce it and\n'> <'include the following information:\n'> <'\n'> <'       host-triplet:   '> 
                  ($ Id.VSub_DollarName '$host') <'\n'> <'       shell:          '> ($ Id.VSub_DollarName '$SHELL') <'\n'> <'       compiler:       '> 
                  ($ Id.VSub_DollarName '$LTCC') <'\n'> <'       compiler flags: '> ($ Id.VSub_DollarName '$LTCFLAGS') <'\n'> <'       linker:         '> 
                  ($ Id.VSub_DollarName '$LD') <' (gnu? '> ($ Id.VSub_DollarName '$with_gnu_ld') <')\n'> <'       version:        '> 
                  ($ Id.VSub_DollarName '$progname') <' (GNU libtool) 2.4.6\n'> <'       automake:       '> 
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Subshell
                            child: (C {($ Id.VSub_DollarName '$AUTOMAKE')} {<--version>})
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                          )
                          (C {($ Id.VSub_DollarName '$SED')} {<1q>})
                        ]
                        negated: F
                      )
                  ) <'\n'> <'       autoconf:       '> 
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Subshell
                            child: (C {($ Id.VSub_DollarName '$AUTOCONF')} {<--version>})
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                          )
                          (C {($ Id.VSub_DollarName '$SED')} {<1q>})
                        ]
                        negated: F
                      )
                  ) <'\n'> <'\n'> <'Report bugs to <bug-libtool@gnu.org>.\n'> 
                  <'GNU libtool home page: <http://www.gnu.org/s/libtool/>.\n'> <'General help using GNU software: <http://www.gnu.org/gethelp/>.'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lo2o)
          op: assign_op.Equal
          rhs: 
            {<'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <.lo> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/.'> ($ Id.VSub_DollarName '$objext') <'/'>
            }
          spids: [9272]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:o2lo)
          op: assign_op.Equal
          rhs: 
            {<'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <.> 
              ($ Id.VSub_DollarName '$objext') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/.lo/'>
            }
          spids: [9281]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_DollarName '$_G_HAVE_XSI_OPS'))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} 
              {
                (SQ <'func_lo2o ()\n'> <'  {\n'> <'    case $1 in\n'> 
                  <'      *.lo) func_lo2o_result=${1%.lo}.$objext ;;\n'> <'      *   ) func_lo2o_result=$1               ;;\n'> <'    esac\n'> <'  }'>
                )
              }
            )
            (C {<eval>} 
              {(SQ <'func_xform ()\n'> <'  {\n'> <'    func_xform_result=${1%.*}.lo\n'> <'  }'>)}
            )
          ]
          spids: [9290 9303]
        )
      ]
      else_action: [
        (command.ShFunction
          name: func_lo2o
          body: 
            (BraceGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_lo2o_result)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Number '$1'))})
                                  (C {($ Id.VSub_DollarName '$SED')} 
                                    {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                  )
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [9361]
                    )
                  ]
                )
              ]
            )
        )
        (command.ShFunction
          name: func_xform
          body: 
            (BraceGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_xform_result)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Number '$1'))})
                                  (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s|\\.[^.]*$|.lo|'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [9394]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.ShFunction
      name: func_fatal_configuration
      body: 
        (BraceGroup
          children: [
            (C {<func__fatal_error>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              } {(DQ <'See the '> ($ Id.VSub_DollarName '$PACKAGE') <' documentation for more information.'>)} 
              {(DQ <'Fatal configuration error.'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_config
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_begincf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### BEGIN LIBTOOL'>)}
                  spids: [9487]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_endcf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### END LIBTOOL'>)}
                  spids: [9493]
                )
              ]
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$SED')}
                {
                  (DQ <'1,/'> ($ Id.VSub_DollarName '$re_begincf') <' CONFIG/d;/'> 
                    ($ Id.VSub_DollarName '$re_endcf') <' CONFIG/,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <d>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                )
              ]
              do_fork: T
            )
            (command.ForEach
              iter_name: tagname
              iter_words: [{($ Id.VSub_DollarName '$taglist')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [
                        {($ Id.VSub_DollarName '$SED')}
                        {<-n>}
                        {
                          (DQ <'/'> ($ Id.VSub_DollarName '$re_begincf') <' TAG CONFIG: '> 
                            ($ Id.VSub_DollarName '$tagname') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/,/'> ($ Id.VSub_DollarName '$re_endcf') 
                            <' TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/p'>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_features
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'host: '> ($ Id.VSub_DollarName '$host'))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<echo>} {(DQ <'enable shared libraries'>)})]
                  spids: [9602 9615]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'disable shared libraries'>)})]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<echo>} {(DQ <'enable static libraries'>)})]
                  spids: [9638 9651]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'disable static libraries'>)})]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_enable_tag
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tagname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [9710]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_begincf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                      )
                    }
                  spids: [9715]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_endcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### END LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                      )
                    }
                  spids: [9723]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:sed_extractcf)
                  op: assign_op.Equal
                  rhs: 
                    {<'/'> ($ Id.VSub_DollarName '$re_begincf') <'/'> <Id.Lit_Comma ','> <'/'> 
                      ($ Id.VSub_DollarName '$re_endcf') <'/p'>
                    }
                  spids: [9731]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$tagname')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <-_A-Za-z0-9> 
                      <Id.Lit_Comma ','> <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (C {<func_fatal_error>} 
                      {(DQ <'invalid tag name: '> ($ Id.VSub_DollarName '$tagname'))}
                    )
                  ]
                  spids: [9753 9761 9772 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$tagname')}
              arms: [
                (case_arm pat_list:[{<CC>}] spids:[9794 9795 9797 -1])
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName '$GREP')}
                                        {(DQ ($ Id.VSub_DollarName '$re_begincf'))}
                                        {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:taglist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$taglist') <' '> 
                                        ($ Id.VSub_DollarName '$tagname')
                                      )
                                    }
                                  spids: [9826]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:extractedcf)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {($ Id.VSub_DollarName '$SED')}
                                              {<-n>}
                                              {<-e>}
                                              {(DQ ($ Id.VSub_DollarName '$sed_extractcf'))}
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Less '<'>
                                                loc: (redir_loc.Fd fd:0)
                                                arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [9851]
                                )
                              ]
                            )
                            (C {<eval>} {(DQ ($ Id.VSub_DollarName '$extractedcf'))})
                          ]
                          spids: [9804 9823]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'ignoring unknown tag '> ($ Id.VSub_DollarName '$tagname'))}
                        )
                      ]
                    )
                  ]
                  spids: [9800 9801 9894 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_check_version_match
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$package_revision'))} 
                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$macro_revision'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName '$VERSION'))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$macro_version'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName '$macro_version'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_LT_EOF>}
                                              here_end_span_id: 10000
                                              stdin_parts: [
                                                ($ Id.VSub_DollarName '$progname')
                                                <': Version mismatch error.  This is '>
                                                ($ Id.VSub_DollarName '$PACKAGE')
                                                <' '>
                                                ($ Id.VSub_DollarName '$VERSION')
                                                <', but the\n'>
                                                ($ Id.VSub_DollarName '$progname')
                                                <
': definition of this LT_INIT comes from an older release.\n'
                                                >
                                                ($ Id.VSub_DollarName '$progname')
                                                <
': You should recreate aclocal.m4 with macros from '
                                                >
                                                ($ Id.VSub_DollarName '$PACKAGE')
                                                <' '>
                                                ($ Id.VSub_DollarName '$VERSION')
                                                <'\n'>
                                                ($ Id.VSub_DollarName '$progname')
                                                <': and run autoconf again.\n'>
                                              ]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [9961 9972]
                                )
                              ]
                              else_action: [
                                (command.Simple
                                  words: [{<cat>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                    (redir
                                      op: <Id.Redir_DLess '<<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        (redir_param.HereDoc
                                          here_begin: {<_LT_EOF>}
                                          here_end_span_id: 10034
                                          stdin_parts: [
                                            ($ Id.VSub_DollarName '$progname')
                                            <': Version mismatch error.  This is '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$VERSION')
                                            <', but the\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': definition of this LT_INIT comes from '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$macro_version')
                                            <'.\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': You should recreate aclocal.m4 with macros from '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$VERSION')
                                            <'\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': and run autoconf again.\n'>
                                          ]
                                        )
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          ]
                          spids: [9942 9958]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [{<cat>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                            (redir
                              op: <Id.Redir_DLess '<<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                (redir_param.HereDoc
                                  here_begin: {<_LT_EOF>}
                                  here_end_span_id: 10073
                                  stdin_parts: [
                                    ($ Id.VSub_DollarName '$progname')
                                    <': Version mismatch error.  This is '>
                                    ($ Id.VSub_DollarName '$PACKAGE')
                                    <' '>
                                    ($ Id.VSub_DollarName '$VERSION')
                                    <', revision '>
                                    ($ Id.VSub_DollarName '$package_revision')
                                    <',\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': but the definition of this LT_INIT comes from revision '>
                                    ($ Id.VSub_DollarName '$macro_revision')
                                    <'.\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': You should recreate aclocal.m4 with macros from revision '>
                                    ($ Id.VSub_DollarName '$package_revision')
                                    <'\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': of '>
                                    ($ Id.VSub_DollarName '$PACKAGE')
                                    <' '>
                                    ($ Id.VSub_DollarName '$VERSION')
                                    <' and run autoconf again.\n'>
                                  ]
                                )
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_MISMATCH')}
                    )
                  ]
                  spids: [9923 9939]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: libtool_options_prep
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_mode')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_config)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [10115]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_dlopen)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10119]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_dry_run)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [10122]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_help)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [10126]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_mode)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10130]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_preserve_dup_deps)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [10133]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opt_quiet)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [10137]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:nonopt)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10142]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:preserve_args)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10145]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{<clean>} {<clea>} {<cle>} {<cl>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<clean>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10160 10167 10193 -1]
                )
                (case_arm
                  pat_list: [{<compile>} {<compil>} {<compi>} {<comp>} {<com>} {<co>} {<c>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<compile>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10196 10209 10235 -1]
                )
                (case_arm
                  pat_list: [{<execute>} {<execut>} {<execu>} {<exec>} {<exe>} {<ex>} {<e>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<execute>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10238 10251 10277 -1]
                )
                (case_arm
                  pat_list: [{<finish>} {<finis>} {<fini>} {<fin>} {<Id.KW_Fi fi>} {<f>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<finish>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10280 10291 10317 -1]
                )
                (case_arm
                  pat_list: [{<install>} {<instal>} {<insta>} {<inst>} {<ins>} {<Id.KW_In in>} {<i>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<install>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10320 10333 10359 -1]
                )
                (case_arm
                  pat_list: [{<link>} {<lin>} {<li>} {<l>}]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<link>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10362 10369 10395 -1]
                )
                (case_arm
                  pat_list: [
                    {<uninstall>}
                    {<uninstal>}
                    {<uninsta>}
                    {<uninst>}
                    {<unins>}
                    {<unin>}
                    {<uni>}
                    {<un>}
                    {<u>}
                  ]
                  action: [
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (C {<set>} {<dummy>} {<--mode>} {<uninstall>} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  tok: <Id.VTest_Plus '+'>
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [10398 10415 10441 -1]
                )
              ]
            )
            (C {<func_quote_for_eval>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_options_prep_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [10463]
                )
              ]
            )
          ]
        )
    )
    (C {<func_add_hook>} {<func_options_prep>} {<libtool_options_prep>})
    (command.ShFunction
      name: libtool_parse_options
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<test>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_G_opt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [10519]
                        )
                      ]
                    )
                    (C {<shift>})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$_G_opt')}
                      arms: [
                        (case_arm
                          pat_list: [{<--dry-run>} {<--dryrun>} {<-n>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_dry_run)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [10541]
                                )
                              ]
                            )
                          ]
                          spids: [10533 10538 10545 -1]
                        )
                        (case_arm
                          pat_list: [{<--config>}]
                          action: [(C {<func_config>})]
                          spids: [10549 10550 10554 -1]
                        )
                        (case_arm
                          pat_list: [{<--dlopen>} {<-dlopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_dlopen)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name opt_dlopen>
                                          suffix_op: 
                                            (suffix_op.Unary
                                              tok: <Id.VTest_Plus '+'>
                                              arg_word: {($ Id.VSub_DollarName '$opt_dlopen') <'\n'>}
                                            )
                                        ) ($ Id.VSub_Number '$1')
                                      )
                                    }
                                  spids: [10564]
                                )
                              ]
                            )
                            (C {<shift>})
                          ]
                          spids: [10558 10561 10579 -1]
                        )
                        (case_arm
                          pat_list: [{<--preserve-dup-deps>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_preserve_dup_deps)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [10587]
                                )
                              ]
                            )
                          ]
                          spids: [10583 10584 10590 -1]
                        )
                        (case_arm
                          pat_list: [{<--features>}]
                          action: [(C {<func_features>})]
                          spids: [10594 10595 10599 -1]
                        )
                        (case_arm
                          pat_list: [{<--finish>}]
                          action: [
                            (command.Sentence
                              child: 
                                (C {<set>} {<dummy>} {<--mode>} {<finish>} 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Number 1>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          tok: <Id.VTest_Plus '+'>
                                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                        )
                                    )
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (C {<shift>})
                          ]
                          spids: [10603 10604 10625 -1]
                        )
                        (case_arm
                          pat_list: [{<--help>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_help)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [10632]
                                )
                              ]
                            )
                          ]
                          spids: [10629 10630 10635 -1]
                        )
                        (case_arm
                          pat_list: [{<--help-all>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_help)
                                  op: assign_op.Equal
                                  rhs: {(SQ <': help-all'>)}
                                  spids: [10642]
                                )
                              ]
                            )
                          ]
                          spids: [10639 10640 10647 -1]
                        )
                        (case_arm
                          pat_list: [{<--mode>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='>} {<0>})
                                (C {<func_missing_arg>} {($ Id.VSub_DollarName '$_G_opt')})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_mode)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number '$1')}
                                  spids: [10673]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_Number '$1')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<clean>}
                                    {<compile>}
                                    {<execute>}
                                    {<finish>}
                                    {<install>}
                                    {<link>}
                                    {<relink>}
                                    {<uninstall>}
                                  ]
                                  spids: [10688 10703 10705 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_error>} 
                                      {
                                        (DQ <'invalid argument for '> ($ Id.VSub_DollarName '$_G_opt'))
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:exit_cmd)
                                          op: assign_op.Equal
                                          rhs: {<Id.ControlFlow_Exit exit>}
                                          spids: [10724]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [10713 10714 10731 -1]
                                )
                              ]
                            )
                            (C {<shift>})
                          ]
                          spids: [10651 10652 10740 -1]
                        )
                        (case_arm
                          pat_list: [{<--no-silent>} {<--no-quiet>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_quiet)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [10750]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_opt'))}
                            )
                          ]
                          spids: [10744 10747 10764 -1]
                        )
                        (case_arm
                          pat_list: [{<--no-warnings>} {<--no-warning>} {<--no-warn>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_warning)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [10776]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_opt'))}
                            )
                          ]
                          spids: [10768 10773 10790 -1]
                        )
                        (case_arm
                          pat_list: [{<--no-verbose>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_verbose)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [10798]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_opt'))}
                            )
                          ]
                          spids: [10794 10795 10812 -1]
                        )
                        (case_arm
                          pat_list: [{<--silent>} {<--quiet>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_quiet)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [10822]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_verbose)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [10826]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_opt'))}
                            )
                          ]
                          spids: [10816 10819 10840 -1]
                        )
                        (case_arm
                          pat_list: [{<--tag>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='>} {<0>})
                                (C {<func_missing_arg>} {($ Id.VSub_DollarName '$_G_opt')})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_tag)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number '$1')}
                                  spids: [10866]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {
                                (DQ <' '> ($ Id.VSub_DollarName '$_G_opt') <' '> ($ Id.VSub_Number '$1'))
                              }
                            )
                            (C {<func_enable_tag>} {(DQ ($ Id.VSub_Number '$1'))})
                            (C {<shift>})
                          ]
                          spids: [10844 10845 10892 -1]
                        )
                        (case_arm
                          pat_list: [{<--verbose>} {<-v>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_quiet)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [10901]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:opt_verbose)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [10905]
                                )
                              ]
                            )
                            (C {<func_append>} {<preserve_args>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$_G_opt'))}
                            )
                          ]
                          spids: [10896 10899 10919 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.Sentence
                              child: 
                                (C {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName '$_G_opt'))} 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Number 1>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          tok: <Id.VTest_Plus '+'>
                                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                        )
                                    )
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: (C {<shift>})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [10927 10928 10952 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_quote_for_eval>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_parse_options_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [10978]
                )
              ]
            )
          ]
        )
    )
    (C {<func_add_hook>} {<func_parse_options>} {<libtool_parse_options>})
    (command.ShFunction
      name: libtool_validate_options
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<0>} {<-lt>} {($ Id.VSub_Pound '$#')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:nonopt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [11030]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [11016 11027]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<Id.Lit_Colon ':'>} {<Id.Lit_Equals '='>} 
                  {(DQ ($ Id.VSub_DollarName '$debug_cmd'))}
                )
                (C {<func_append>} {<preserve_args>} {(DQ <' --debug'>)})
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <pw32> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <solaris2> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <os2> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:opt_duplicate_compiler_generated_deps)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [11122]
                        )
                      ]
                    )
                  ]
                  spids: [11082 11115 11126 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:opt_duplicate_compiler_generated_deps)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$opt_preserve_dup_deps')}
                          spids: [11133]
                        )
                      ]
                    )
                  ]
                  spids: [11129 11130 11137 -1]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_help')})
                (BraceGroup
                  children: [
                    (C {<func_check_version_match>})
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {<test>} {<yes>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                        )
                        (C {<test>} {<yes>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                        )
                        (C {<func_fatal_configuration>} 
                          {(DQ <'not configured to build any kind of library'>)}
                        )
                      ]
                    )
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'std_shrext='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                        ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$opt_dlopen'))})
                                        (C {<test>} {<execute>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_error>} {(DQ <'unrecognized option \'-dlopen\''>)})
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName '$ECHO')}
                                {(DQ ($ Id.VSub_DollarName '$help'))}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [11214 11238]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:generic_help)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$help')}
                          spids: [11271]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:help)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Try \''> ($ Id.VSub_DollarName '$progname') <' --help --mode='> 
                                ($ Id.VSub_DollarName '$opt_mode') <'\' for more information.'>
                              )
                            }
                          spids: [11275]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (C {<func_quote_for_eval>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_validate_options_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [11304]
                )
              ]
            )
          ]
        )
    )
    (C {<func_add_hook>} {<func_validate_options>} {<libtool_validate_options>})
    (C {<func_options>} 
      {
        (braced_var_sub
          token: <Id.VSub_Number 1>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{(DQ ($ Id.VSub_At '$@'))})
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<eval>} {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName '$func_options_result'))})
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:magic)
          op: assign_op.Equal
          rhs: {(SQ <'%%%MAGIC variable%%%'>)}
          spids: [11359]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:magic_exe)
          op: assign_op.Equal
          rhs: {(SQ <'%%%MAGIC EXE variable%%%'>)}
          spids: [11364]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:extracted_archives)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [11373]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:extracted_serial)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [11375]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exec_cmd)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [11388]
        )
      ]
    )
    (command.ShFunction
      name: func_fallback_echo
      body: 
        (BraceGroup
          children: [(C {<eval>} {(SQ <'cat <<_LTECHO_EOF\n'> <'$1\n'> <_LTECHO_EOF>)})]
        )
    )
    (command.ShFunction
      name: func_generated_by_libtool_p
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$GREP')}
                {(DQ <'^# Generated by .*'> ($ Id.VSub_DollarName '$PACKAGE'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_lalib_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$SED')} {<-e>} {<4q>} {(DQ ($ Id.VSub_Number '$1'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<func_generated_by_libtool_p>})
                  ]
                  negated: F
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_lalib_unsafe_p
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lalib_p)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [11528]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                                (C {<test>} {<-r>} {(DQ ($ Id.VSub_Number '$1'))})
                                (command.Simple
                                  words: [{<exec>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_LessAnd '5<&'>
                                      loc: (redir_loc.Fd fd:5)
                                      arg: {<0>}
                                    )
                                    (redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {(DQ ($ Id.VSub_Number '$1'))}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForEach
                      iter_name: lalib_p_l
                      iter_words: [{<1>} {<2>} {<3>} {<4>}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<read>} {<lalib_p_line>})
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$lalib_p_line')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>) 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                      ) <Generated> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <by> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                      ) <Id.Lit_Star '*'> ($ Id.VSub_DollarName '$PACKAGE') <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:lalib_p)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [11610]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [11598 11608 11615 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.Simple
                      words: [{<exec>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_LessAnd '0<&'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {<5>}
                        )
                        (redir
                          op: <Id.Redir_LessAnd '5<&'>
                          loc: (redir_loc.Fd fd:5)
                          arg: {<->}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [11532 11565]
                )
              ]
            )
            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$lalib_p'))})
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_script_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$lt_truncate_bin')}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_Number '$1'))}
                        )
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<func_generated_by_libtool_p>})
                  ]
                  negated: F
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_executable_p
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_ltwrapper_exec_suffix)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [11718]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                  spids: [11728 11730 11732 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_ltwrapper_exec_suffix)
                          op: assign_op.Equal
                          rhs: {<.exe>}
                          spids: [11738]
                        )
                      ]
                    )
                  ]
                  spids: [11735 11736 11741 -1]
                )
              ]
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$GREP')}
                {(DQ ($ Id.VSub_DollarName '$magic_exe'))}
                {(DQ ($ Id.VSub_Number '$1') ($ Id.VSub_DollarName '$func_ltwrapper_exec_suffix'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_scriptname
      body: 
        (BraceGroup
          children: [
            (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_Number '$1'))} {(DQ )} {(DQ <.>)})
            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
              {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_ltwrapper_scriptname_result)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$func_dirname_result') <'/'> 
                      ($ Id.VSub_DollarName '$objdir') <'/'> (${ Id.VSub_Name func_stripname_result) <_ltshwrapper>
                    }
                  spids: [11815]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<func_ltwrapper_script_p>} {(DQ ($ Id.VSub_Number '$1'))})
                (C {<func_ltwrapper_executable_p>} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_execute_cmds
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:save_ifs)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$IFS')}
                      spids: [11890]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <'~'>)}
                  spids: [11894]
                )
              ]
            )
            (command.ForEach
              iter_name: cmd
              iter_words: [{($ Id.VSub_Number '$1')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$sp') ($ Id.VSub_DollarName '$nl')}
                          spids: [11912]
                        )
                      ]
                    )
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'cmd='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                        ) ($ Id.VSub_DollarName '$cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                          spids: [11925]
                        )
                      ]
                    )
                    (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Number 2>
                            suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<':'>})
                          )
                        )
                      }
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                  spids: [11947]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_source
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(C {<.>} {(DQ ($ Id.VSub_Number '$1'))})]
                  spids: [11991 12000 12008 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<.>} {(DQ <'./'> ($ Id.VSub_Number '$1'))})]
                  spids: [12011 12012 12021 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_resolve_sysroot
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_resolve_sysroot_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [12047]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_stripname>} {(SQ <'='>)} {(SQ )} 
                      {(DQ ($ Id.VSub_DollarName '$func_resolve_sysroot_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_resolve_sysroot_result)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName '$lt_sysroot') 
                              ($ Id.VSub_DollarName '$func_stripname_result')
                            }
                          spids: [12077]
                        )
                      ]
                    )
                  ]
                  spids: [12058 12060 12082 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_replace_sysroot
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: 
                {($ Id.VSub_DollarName '$lt_sysroot') <Id.Lit_Colon ':'> ($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                      (DQ ($ Id.VSub_DollarName '$lt_sysroot')) <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (C {<func_stripname>} {(DQ ($ Id.VSub_DollarName '$lt_sysroot'))} {(SQ )} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_replace_sysroot_result)
                          op: assign_op.Equal
                          rhs: {(SQ <'='>) ($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [12140]
                        )
                      ]
                    )
                  ]
                  spids: [12116 12123 12147 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_replace_sysroot_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [12158]
                        )
                      ]
                    )
                  ]
                  spids: [12150 12151 12162 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_infer_tag
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$available_tags'))})
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$tagname'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_quoted)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [12224]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: arg
                      iter_words: [{($ Id.VSub_DollarName '$CC')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_append_quoted>} {<CC_quoted>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_expanded)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<func_echo_all>} {($ Id.VSub_DollarName '$CC')})
                              )
                            }
                          spids: [12251]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_quoted_expanded)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<func_echo_all>} {($ Id.VSub_DollarName '$CC_quoted')})
                              )
                            }
                          spids: [12261]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_At '$@')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC') <' '>) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_expanded') <' '>) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC_expanded') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted')) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC_quoted') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>) 
                              <Id.Lit_Star '*'>
                            }
                            {(DQ ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>) 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          spids: [12286 12352 12354 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ForEach
                              iter_name: z
                              iter_words: [{($ Id.VSub_DollarName '$available_tags')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$GREP')}
                                                        {
                                                          (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> 
                                                            ($ Id.VSub_DollarName '$z') <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                                        )
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eval>} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Simple
                                                        words: [
                                                          {($ Id.VSub_DollarName '$SED')}
                                                          {<-n>}
                                                          {<-e>}
                                                          {
                                                            (SQ 
                                                              <'/^# ### BEGIN LIBTOOL TAG CONFIG: '>
                                                            ) ($ Id.VSub_DollarName '$z') (SQ <'$/,/^# ### END LIBTOOL TAG CONFIG: '>) ($ Id.VSub_DollarName '$z') 
                                                            (SQ <'$/p'>)
                                                          }
                                                        ]
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Less '<'>
                                                            loc: (redir_loc.Fd fd:0)
                                                            arg: {($ Id.VSub_DollarName '$progpath')}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_quoted)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [12440]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: arg
                                              iter_words: [{($ Id.VSub_DollarName '$CC')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_append_quoted>} {<CC_quoted>} 
                                                      {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_expanded)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<func_echo_all>} 
                                                            {($ Id.VSub_DollarName '$CC')}
                                                          )
                                                      )
                                                    }
                                                  spids: [12471]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_quoted_expanded)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<func_echo_all>} 
                                                            {($ Id.VSub_DollarName '$CC_quoted')}
                                                          )
                                                      )
                                                    }
                                                  spids: [12481]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_At '$@') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {(DQ <' '> ($ Id.VSub_DollarName '$CC') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName '$CC_expanded') 
                                                        <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC_expanded') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted')) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC_quoted') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tagname)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$z')}
                                                          spids: [12582]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [12501 12567 12589 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [12381 12402]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$tagname'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_echo>} {(DQ <'unable to infer tagged configuration'>)})
                                    (C {<func_fatal_error>} {(DQ <'specify a tag with \'--tag\''>)})
                                  ]
                                  spids: [12613 12624]
                                )
                              ]
                            )
                          ]
                          spids: [12365 12366 12650 -1]
                        )
                      ]
                    )
                  ]
                  spids: [12200 12221]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_write_libtool_object
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:write_libobj)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [12680]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:write_lobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                              ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)
                            }
                          spids: [12700]
                        )
                      ]
                    )
                  ]
                  spids: [12684 12697]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:write_lobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [12709]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:write_oldobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                              ($ Id.VSub_Number '$3') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)
                            }
                          spids: [12733]
                        )
                      ]
                    )
                  ]
                  spids: [12717 12730]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:write_oldobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [12742]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name write_libobj) <T>}
                        )
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_span_id: 12793
                              stdin_parts: [
                                <'# '>
                                ($ Id.VSub_DollarName '$write_libobj')
                                <' - a libtool object file\n'>
                                <'# Generated by '>
                                ($ Id.VSub_DollarName '$PROGRAM')
                                <' (GNU '>
                                ($ Id.VSub_DollarName '$PACKAGE')
                                <') '>
                                ($ Id.VSub_DollarName '$VERSION')
                                <'\n'>
                                <'#\n'>
                                <'# Please DO NOT delete this file!\n'>
                                <'# It is necessary for linking the library.\n'>
                                <'\n'>
                                <'# Name of the PIC object.\n'>
                                <'pic_object='>
                                ($ Id.VSub_DollarName '$write_lobj')
                                <'\n'>
                                <'\n'>
                                <'# Name of the non-PIC object\n'>
                                <'non_pic_object='>
                                ($ Id.VSub_DollarName '$write_oldobj')
                                <'\n'>
                                <'\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                    (C {($ Id.VSub_DollarName '$MV')} {(DQ (${ Id.VSub_Name write_libobj) <T>)} 
                      {(DQ ($ Id.VSub_DollarName '$write_libobj'))}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_core_file_wine_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_convert_core_file_wine_to_w32_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [12864]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_convert_core_file_wine_to_w32_tmp)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    words: [{<winepath>} {<-w>} {(DQ ($ Id.VSub_Number '$1'))}]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [12902]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_QMark '$?'))} {<-eq>} {<0>})
                                        (C {<test>} {<-n>} 
                                          {
                                            (DQ 
                                              ($ Id.VSub_DollarName 
'$func_convert_core_file_wine_to_w32_tmp'
                                              )
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      name: func_convert_core_file_wine_to_w32_result
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
'$func_convert_core_file_wine_to_w32_tmp'
                                                    )
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName '$sed_naive_backslashify')
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [12945]
                                )
                              ]
                            )
                          ]
                          spids: [12919 12942]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_convert_core_file_wine_to_w32_result)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [12972]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [12868 12879]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_core_path_wine_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_convert_core_path_wine_to_w32_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [13033]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldIFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$IFS')}
                          spids: [13050]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [13054]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: func_convert_core_path_wine_to_w32_f
                      iter_words: [{($ Id.VSub_Number '$1')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$oldIFS')}
                                  spids: [13070]
                                )
                              ]
                            )
                            (C {<func_convert_core_file_wine_to_w32>} 
                              {(DQ ($ Id.VSub_DollarName '$func_convert_core_path_wine_to_w32_f'))}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName 
'$func_convert_core_file_wine_to_w32_result'
                                                  )
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-z>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$func_convert_core_path_wine_to_w32_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: 
func_convert_core_path_wine_to_w32_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$func_convert_core_file_wine_to_w32_result'
                                                      )
                                                    }
                                                  spids: [13109]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13095 13106]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_append>} 
                                          {<func_convert_core_path_wine_to_w32_result>} {(DQ <';'> ($ Id.VSub_DollarName '$func_convert_core_file_wine_to_w32_result'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [13081 13092]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$oldIFS')}
                          spids: [13135]
                        )
                      ]
                    )
                  ]
                  spids: [13036 13047]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_cygpath
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LT_CYGPATH'))})
                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$LT_CYGPATH'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_cygpath_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    words: [
                                      {($ Id.VSub_DollarName '$LT_CYGPATH')}
                                      {(DQ ($ Id.VSub_At '$@'))}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [13229]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {(DQ ($ Id.VSub_QMark '$?'))} {<-ne>} {<0>})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_cygpath_result)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [13264]
                                )
                              ]
                            )
                          ]
                          spids: [13244 13257]
                        )
                      ]
                    )
                  ]
                  spids: [13205 13226]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_cygpath_result)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [13273]
                    )
                  ]
                )
                (C {<func_error>} 
                  {
                    (DQ <'LT_CYGPATH is empty or specifies non-existent file: \''> 
                      ($ Id.VSub_DollarName '$LT_CYGPATH') <'\''>
                    )
                  }
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_core_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_convert_core_msys_to_w32_result)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Subshell
                                child: (C {<cmd>} {<'//c'>} {<echo>} {(DQ ($ Id.VSub_Number '$1'))})
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                              )
                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} {(SQ <'s/[ ]*$//'>)} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$sed_naive_backslashify'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [13319]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_check
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$2'))})
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_error>} {(DQ <'Could not determine host file name corresponding to'>)})
                    (C {<func_error>} {(DQ <'  \''> ($ Id.VSub_Number '$1') <'\''>)})
                    (C {<func_error>} {(DQ <'Continuing, but uninstalled executables may not work.'>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [13441]
                        )
                      ]
                    )
                  ]
                  spids: [13390 13411]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_check
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$4'))})
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$3'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_error>} {(DQ <'Could not determine the host path corresponding to'>)})
                    (C {<func_error>} {(DQ <'  \''> ($ Id.VSub_Number '$3') <'\''>)})
                    (C {<func_error>} {(DQ <'Continuing, but uninstalled executables may not work.'>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ <x> ($ Id.VSub_Number '$1'))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_Number '$2'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lt_replace_pathsep_chars)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'s|'> ($ Id.VSub_Number '$1') <'|'> ($ Id.VSub_Number '$2') 
                                        <'|g'>
                                      )
                                    }
                                  spids: [13554]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {(DQ ($ Id.VSub_Number '$3'))})
                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName '$lt_replace_pathsep_chars')
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [13564]
                                )
                              ]
                            )
                          ]
                          spids: [13533 13551]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number '$3')}
                              spids: [13591]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [13478 13499]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_front_back_pathsep
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {($ Id.VSub_Number '$4')}
              arms: [
                (case_arm
                  pat_list: [{($ Id.VSub_Number '$1')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_Number '$3') 
                              ($ Id.VSub_DollarName '$func_to_host_path_result')
                            }
                          spids: [13639]
                        )
                      ]
                    )
                  ]
                  spids: [13635 13637 13644 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_Number '$4')}
              arms: [
                (case_arm
                  pat_list: [{($ Id.VSub_Number '$2')}]
                  action: [
                    (C {<func_append>} {<func_to_host_path_result>} {(DQ ($ Id.VSub_Number '$3'))})
                  ]
                  spids: [13657 13659 13670 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_to_host_file
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {($ Id.VSub_DollarName '$to_host_file_cmd')} {(DQ ($ Id.VSub_Number '$1'))})
          ]
        )
    )
    (command.ShFunction
      name: func_to_tool_file
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {<Id.Lit_Comma ','> ($ Id.VSub_Number '$2') <Id.Lit_Comma ','>}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_Comma ','> 
                      (DQ ($ Id.VSub_DollarName '$to_tool_file_cmd')) <Id.Lit_Comma ','> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_tool_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [13782]
                        )
                      ]
                    )
                  ]
                  spids: [13772 13779 13786 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$to_tool_file_cmd')} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_tool_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_to_host_file_result')}
                          spids: [13800]
                        )
                      ]
                    )
                  ]
                  spids: [13789 13790 13804 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_noop
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [13830]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [13864]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_convert_core_msys_to_w32>} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_convert_core_msys_to_w32_result')}
                          spids: [13889]
                        )
                      ]
                    )
                  ]
                  spids: [13868 13879]
                )
              ]
            )
            (C {<func_convert_file_check>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(DQ ($ Id.VSub_DollarName '$func_to_host_file_result'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_cygwin_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [13934]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<cygpath>} {<-m>} {(DQ ($ Id.VSub_Number '$1'))})
                              )
                            }
                          spids: [13960]
                        )
                      ]
                    )
                  ]
                  spids: [13938 13949]
                )
              ]
            )
            (C {<func_convert_file_check>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(DQ ($ Id.VSub_DollarName '$func_to_host_file_result'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_nix_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14015]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_convert_core_file_wine_to_w32>} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_convert_core_file_wine_to_w32_result')}
                          spids: [14040]
                        )
                      ]
                    )
                  ]
                  spids: [14019 14030]
                )
              ]
            )
            (C {<func_convert_file_check>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(DQ ($ Id.VSub_DollarName '$func_to_host_file_result'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_msys_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14085]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_convert_core_msys_to_w32>} {(DQ ($ Id.VSub_Number '$1'))})
                    (C {<func_cygpath>} {<-u>} 
                      {(DQ ($ Id.VSub_DollarName '$func_convert_core_msys_to_w32_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_cygpath_result')}
                          spids: [14119]
                        )
                      ]
                    )
                  ]
                  spids: [14089 14100]
                )
              ]
            )
            (C {<func_convert_file_check>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(DQ ($ Id.VSub_DollarName '$func_to_host_file_result'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_file_nix_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14167]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_convert_core_file_wine_to_w32>} {(DQ ($ Id.VSub_Number '$1'))})
                    (C {<func_cygpath>} {<-u>} 
                      {(DQ ($ Id.VSub_DollarName '$func_convert_core_file_wine_to_w32_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_file_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_cygpath_result')}
                          spids: [14205]
                        )
                      ]
                    )
                  ]
                  spids: [14171 14182]
                )
              ]
            )
            (C {<func_convert_file_check>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(DQ ($ Id.VSub_DollarName '$func_to_host_file_result'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:to_host_path_cmd)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [14297]
        )
      ]
    )
    (command.ShFunction
      name: func_init_to_host_path_cmd
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$to_host_path_cmd'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {(SQ <func_convert_file_>)} {(SQ )} 
                      {(DQ ($ Id.VSub_DollarName '$to_host_file_cmd'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:to_host_path_cmd)
                          op: assign_op.Equal
                          rhs: {<func_convert_path_> ($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14339]
                        )
                      ]
                    )
                  ]
                  spids: [14311 14322]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_to_host_path
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_init_to_host_path_cmd>})
            (C {($ Id.VSub_DollarName '$to_host_path_cmd')} {(DQ ($ Id.VSub_Number '$1'))})
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_noop
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14401]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14435]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_tmp1)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14476]
                        )
                      ]
                    )
                    (C {<func_convert_core_msys_to_w32>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_convert_core_msys_to_w32_result')}
                          spids: [14487]
                        )
                      ]
                    )
                    (C {<func_convert_path_check>} {<Id.Lit_Colon ':'>} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))} {(DQ ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                    )
                    (C {<func_convert_path_front_back_pathsep>} {(DQ <':*'>)} {(DQ <'*:'>)} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                  spids: [14439 14450]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_cygwin_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14559]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_tmp1)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14592]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (C {<cygpath>} {<-m>} {<-p>} 
                                    {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))}
                                  )
                              )
                            }
                          spids: [14596]
                        )
                      ]
                    )
                    (C {<func_convert_path_check>} {<Id.Lit_Colon ':'>} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))} {(DQ ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                    )
                    (C {<func_convert_path_front_back_pathsep>} {(DQ <':*'>)} {(DQ <'*:'>)} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                  spids: [14563 14574]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_nix_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14680]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_tmp1)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14713]
                        )
                      ]
                    )
                    (C {<func_convert_core_path_wine_to_w32>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_convert_core_path_wine_to_w32_result')}
                          spids: [14724]
                        )
                      ]
                    )
                    (C {<func_convert_path_check>} {<Id.Lit_Colon ':'>} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))} {(DQ ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                    )
                    (C {<func_convert_path_front_back_pathsep>} {(DQ <':*'>)} {(DQ <'*:'>)} {(DQ <';'>)} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                  spids: [14684 14695]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_msys_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14796]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_tmp1)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14829]
                        )
                      ]
                    )
                    (C {<func_convert_core_msys_to_w32>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))}
                    )
                    (C {<func_cygpath>} {<-u>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$func_convert_core_msys_to_w32_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_cygpath_result')}
                          spids: [14851]
                        )
                      ]
                    )
                    (C {<func_convert_path_check>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))} {(DQ ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                    )
                    (C {<func_convert_path_front_back_pathsep>} {(DQ <':*'>)} {(DQ <'*:'>)} 
                      {<Id.Lit_Colon ':'>} {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                  spids: [14800 14811]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_convert_path_nix_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [14922]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_Number '$1'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_tmp1)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [14963]
                        )
                      ]
                    )
                    (C {<func_convert_core_path_wine_to_w32>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))}
                    )
                    (C {<func_cygpath>} {<-u>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$func_convert_core_path_wine_to_w32_result'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_cygpath_result')}
                          spids: [14985]
                        )
                      ]
                    )
                    (C {<func_convert_path_check>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                      {(DQ ($ Id.VSub_DollarName '$func_to_host_path_tmp1'))} {(DQ ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                    )
                    (C {<func_convert_path_front_back_pathsep>} {(DQ <':*'>)} {(DQ <'*:'>)} 
                      {<Id.Lit_Colon ':'>} {(DQ ($ Id.VSub_Number '$1'))}
                    )
                  ]
                  spids: [14926 14937]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_dll_def_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_dll_def_p_tmp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {($ Id.VSub_DollarName '$SED')} {<-n>} {<-e>} {(SQ <'s/^[\t ]*//'>)} {<-e>} 
                            {(SQ <'/^\\(;.*\\)*$/d'>)} {<-e>} {(SQ <'s/^\\(EXPORTS\\|LIBRARY\\)\\([\t ].*\\)*$/DEF/p'>)} {<-e>} {<q>} 
                            {(DQ ($ Id.VSub_Number '$1'))}
                          )
                      )
                    }
                  spids: [15053]
                )
              ]
            )
            (C {<test>} {<DEF>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$func_dll_def_p_tmp'))})
          ]
        )
    )
    (command.ShFunction
      name: func_mode_compile
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:base_compile)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [15161]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:srcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [15164]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:suppress_opt)
                  op: assign_op.Equal
                  rhs: {<yes>}
                  spids: [15171]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:suppress_output)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [15175]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:arg_mode)
                  op: assign_op.Equal
                  rhs: {<normal>}
                  spids: [15178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobj)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [15182]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:later)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [15185]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pie_flag)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [15188]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg_mode')}
                      arms: [
                        (case_arm
                          pat_list: [{<arg>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lastarg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [15216]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg_mode)
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [15220]
                                )
                              ]
                            )
                          ]
                          spids: [15207 15209 15224 -1]
                        )
                        (case_arm
                          pat_list: [{<target>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [15233]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg_mode)
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [15237]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15228 15230 15244 -1]
                        )
                        (case_arm
                          pat_list: [{<normal>}]
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$arg')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-o>}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                                        (C {<func_fatal_error>} 
                                          {(DQ <'you cannot specify \'-o\' more than once'>)}
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg_mode)
                                          op: assign_op.Equal
                                          rhs: {<target>}
                                          spids: [15287]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15264 15265 15294 -1]
                                )
                                (case_arm
                                  pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                  action: [
                                    (C {<func_append>} {<pie_flag>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15298 15307 15323 -1]
                                )
                                (case_arm
                                  pat_list: [{<-shared>} {<-static>} {<-prefer-pic>} {<-prefer-non-pic>}]
                                  action: [
                                    (C {<func_append>} {<later>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15327 15340 15356 -1]
                                )
                                (case_arm
                                  pat_list: [{<-no-suppress>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:suppress_opt)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [15364]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15360 15361 15371 -1]
                                )
                                (case_arm
                                  pat_list: [{<-Xcompiler>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg_mode)
                                          op: assign_op.Equal
                                          rhs: {<arg>}
                                          spids: [15379]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15375 15376 15392 -1]
                                )
                                (case_arm
                                  pat_list: [{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_stripname>} {(SQ <'-Wc,'>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:args)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [15419]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [15423]
                                        )
                                      ]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_ifs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$IFS')}
                                              spids: [15426]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Comma ','>}
                                          spids: [15430]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: arg
                                      iter_words: [{($ Id.VSub_DollarName '$args')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                                  spids: [15446]
                                                )
                                              ]
                                            )
                                            (C {<func_append_quoted>} {<lastarg>} 
                                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                          spids: [15462]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$lastarg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [15480]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<base_compile>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$lastarg'))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15399 15402 15502 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$srcfile')}
                                          spids: [15522]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:srcfile)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [15526]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15506 15507 15530 -1]
                                )
                              ]
                            )
                          ]
                          spids: [15248 15250 15539 -1]
                        )
                      ]
                    )
                    (C {<func_append_quoted>} {<base_compile>} {(DQ ($ Id.VSub_DollarName '$lastarg'))})
                  ]
                )
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$arg_mode')}
              arms: [
                (case_arm
                  pat_list: [{<arg>}]
                  action: [
                    (C {<func_fatal_error>} {(DQ <'you must specify an argument for -Xcompile'>)})
                  ]
                  spids: [15576 15577 15587 -1]
                )
                (case_arm
                  pat_list: [{<target>}]
                  action: [(C {<func_fatal_error>} {(DQ <'you must specify a target with \'-o\''>)})]
                  spids: [15590 15591 15601 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                        (BraceGroup
                          children: [
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$srcfile'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                  spids: [15632]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [15604 15605 15639 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$libobj')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <cCFSifmso> <Id.Lit_RBracket ']'>}
                    {<Id.Lit_Star '*'> <.ada>}
                    {<Id.Lit_Star '*'> <.adb>}
                    {<Id.Lit_Star '*'> <.ads>}
                    {<Id.Lit_Star '*'> <.asm>}
                    {<Id.Lit_Star '*'> <.c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}
                    {<Id.Lit_Star '*'> <.cc>}
                    {<Id.Lit_Star '*'> <.ii>}
                    {<Id.Lit_Star '*'> <.class>}
                    {<Id.Lit_Star '*'> <.cpp>}
                    {<Id.Lit_Star '*'> <.cxx>}
                    {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <fF> <Id.Lit_RBracket ']'> 
                      <Id.Lit_LBracket '['> <09> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                    }
                    {<Id.Lit_Star '*'> <.for>}
                    {<Id.Lit_Star '*'> <.java>}
                    {<Id.Lit_Star '*'> <.go>}
                    {<Id.Lit_Star '*'> <.obj>}
                    {<Id.Lit_Star '*'> <.sx>}
                    {<Id.Lit_Star '*'> <.cu>}
                    {<Id.Lit_Star '*'> <.cup>}
                  ]
                  action: [
                    (C {<func_xform>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:libobj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_xform_result')}
                          spids: [15781]
                        )
                      ]
                    )
                  ]
                  spids: [15661 15771 15785 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$libobj')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                  action: [
                    (command.Sentence
                      child: (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:obj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                          spids: [15810]
                        )
                      ]
                    )
                  ]
                  spids: [15799 15801 15813 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_error>} 
                      {
                        (DQ <'cannot determine name of library object from \''> 
                          ($ Id.VSub_DollarName '$libobj') <'\''>
                        )
                      }
                    )
                  ]
                  spids: [15816 15817 15829 -1]
                )
              ]
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName '$base_compile')})
            (command.ForEach
              iter_name: arg
              iter_words: [{($ Id.VSub_DollarName '$later')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                )
                                (C {<func_fatal_configuration>} {(DQ <'cannot build a shared library'>)})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [15886]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15861 15862 15893 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [15901]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [15905]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15897 15898 15912 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_mode)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [15920]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15916 15917 15927 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-non-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_mode)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [15935]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15931 15932 15942 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobj'))} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                )
                (command.Pipeline
                  children: [
                    (C {($ Id.VSub_DollarName '$ECHO')} {(DQ <X> ($ Id.VSub_DollarName '$libobj'))})
                    (C {($ Id.VSub_DollarName '$GREP')} 
                      {(SQ <'[]~#^*{};<>?"'>) (DQ <'\''>) (SQ <'\t &()|`$[]'>)}
                    )
                  ]
                  negated: F
                )
                (C {<func_warning>} 
                  {
                    (DQ <'libobj name \''> ($ Id.VSub_DollarName '$libobj') 
                      <'\' may not contain shell special characters.'>
                    )
                  }
                )
              ]
            )
            (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName '$obj'))} {(DQ <'/'>)} {(DQ )})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:objname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                  spids: [16026]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:xdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                  spids: [16030]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lobj)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$xdir') ($ Id.VSub_DollarName '$objdir') <'/'> 
                      ($ Id.VSub_DollarName '$objname')
                    }
                  spids: [16034]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$base_compile'))})
                (C {<func_fatal_help>} {(DQ <'you must specify a compilation command'>)})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:removelist)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$obj') <' '> ($ Id.VSub_DollarName '$lobj') 
                                <' '> ($ Id.VSub_DollarName '$libobj') <' '> (${ Id.VSub_Name libobj) <T>
                              )
                            }
                          spids: [16082]
                        )
                      ]
                    )
                  ]
                  spids: [16066 16079]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:removelist)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName '$lobj') <' '> ($ Id.VSub_DollarName '$libobj') 
                            <' '> (${ Id.VSub_Name libobj) <T>
                          )
                        }
                      spids: [16100]
                    )
                  ]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [
                    {<cygwin> <Id.Lit_Star '*'>}
                    {<mingw> <Id.Lit_Star '*'>}
                    {<pw32> <Id.Lit_Star '*'>}
                    {<os2> <Id.Lit_Star '*'>}
                    {<cegcc> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [16153]
                        )
                      ]
                    )
                  ]
                  spids: [16128 16150 16157 -1]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$pic_mode'))}
                                )
                                (C {<test>} {<pass_all>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$deplibs_check_method'))}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [16196]
                        )
                      ]
                    )
                  ]
                  spids: [16163 16189]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$compiler_c_o'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output_obj)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$srcfile'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(SQ <'s%^.*/%%; s%\\.[^.]*$%%'>)}
                                      )
                                    ]
                                    negated: F
                                  )
                              ) <.> ($ Id.VSub_DollarName '$objext')
                            }
                          spids: [16228]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:lockfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$output_obj') <.lock>}
                          spids: [16252]
                        )
                      ]
                    )
                  ]
                  spids: [16212 16225]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:output_obj)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [16260]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:need_locks)
                      op: assign_op.Equal
                      rhs: {<no>}
                      spids: [16263]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:lockfile)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [16267]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$need_locks'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_Until until>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                    (command.Simple
                                      words: [
                                        {<ln>}
                                        {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                        {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_echo>} 
                              {
                                (DQ <'Waiting for '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' to be removed'>
                                )
                              }
                            )
                            (C {<sleep>} {<2>})
                          ]
                        )
                    )
                  ]
                  spids: [16282 16295]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<warn>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$need_locks'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' exists and contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'This indicates that another process is trying to use the same\n'> 
                                  <
'temporary object file, and libtool could not work around it because\n'
                                  > <'your compiler does not support \'-c\' and \'-o\' together.  If you\n'> 
                                  <
'repeat this compilation, it may succeed, by chance, but you had better\n'
                                  > <'avoid parallel builds (make -j) in this platform, or get a better\n'> <compiler.>
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (C {($ Id.VSub_DollarName '$RM')} 
                                  {($ Id.VSub_DollarName '$removelist')}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16354 16365]
                        )
                      ]
                    )
                    (C {<func_append>} {<removelist>} {(DQ <' '> ($ Id.VSub_DollarName '$output_obj'))})
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$srcfile'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [16338 16351]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (C {($ Id.VSub_DollarName '$RM')} {($ Id.VSub_DollarName '$removelist')})
              ]
            )
            (C {<func_append>} {<removelist>} {(DQ <' '> ($ Id.VSub_DollarName '$lockfile'))})
            (C {<trap>} {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)} {<1>} {<2>} {<15>})
            (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$srcfile'))} 
              {<func_convert_file_msys_to_w32>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:srcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_to_tool_file_result')}
                  spids: [16483]
                )
              ]
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$srcfile'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:qsrcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [16494]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fbsd_hideous_sh_bug)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$base_compile')}
                          spids: [16523]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pic_mode'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                        ($ Id.VSub_DollarName '$qsrcfile') <' '> ($ Id.VSub_DollarName '$pic_flag')
                                      )
                                    }
                                  spids: [16545]
                                )
                              ]
                            )
                          ]
                          spids: [16528 16542]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                    ($ Id.VSub_DollarName '$qsrcfile')
                                  )
                                }
                              spids: [16562]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_mkdir_p>} 
                      {(DQ ($ Id.VSub_DollarName '$xdir') ($ Id.VSub_DollarName '$objdir'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$output_obj'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<command>} {(DQ <' -o '> ($ Id.VSub_DollarName '$lobj'))})
                          ]
                          spids: [16583 16594]
                        )
                      ]
                    )
                    (C {<func_show_eval_locale>} {(DQ ($ Id.VSub_DollarName '$command'))} 
                      {(SQ <'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<warn>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$need_locks'))}
                                        )
                                        (C {<test>} 
                                          {
                                            (DQ <X> 
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    words: [
                                                      {<cat>}
                                                      {($ Id.VSub_DollarName '$lockfile')}
                                                    ]
                                                    redirects: [
                                                      (redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                              )
                                            )
                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$srcfile'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') <' contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName '$srcfile') <'\n'> <'\n'> 
                                  <
'This indicates that another process is trying to use the same\n'
                                  > <'temporary object file, and libtool could not work around it because\n'> 
                                  <
'your compiler does not support \'-c\' and \'-o\' together.  If you\n'
                                  > <'repeat this compilation, it may succeed, by chance, but you had better\n'> 
                                  <
'avoid parallel builds (make -j) in this platform, or get a better\n'
                                  > <compiler.>
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (C {($ Id.VSub_DollarName '$RM')} 
                                  {($ Id.VSub_DollarName '$removelist')}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16629 16669]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$output_obj'))})
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$output_obj'))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$lobj'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_show_eval>} {(SQ <'$MV "$output_obj" "$lobj"'>)} 
                              {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                            )
                          ]
                          spids: [16727 16755]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$suppress_opt'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:suppress_output)
                                  op: assign_op.Equal
                                  rhs: {(SQ <' >/dev/null 2>&1'>)}
                                  spids: [16795]
                                )
                              ]
                            )
                          ]
                          spids: [16779 16792]
                        )
                      ]
                    )
                  ]
                  spids: [16503 16516]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pic_mode'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                        ($ Id.VSub_DollarName '$qsrcfile') ($ Id.VSub_DollarName '$pie_flag')
                                      )
                                    }
                                  spids: [16849]
                                )
                              ]
                            )
                          ]
                          spids: [16828 16842]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                    ($ Id.VSub_DollarName '$qsrcfile') <' '> ($ Id.VSub_DollarName '$pic_flag')
                                  )
                                }
                              spids: [16861]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$compiler_c_o'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<command>} {(DQ <' -o '> ($ Id.VSub_DollarName '$obj'))})
                          ]
                          spids: [16874 16887]
                        )
                      ]
                    )
                    (C {<func_append>} {<command>} {(DQ ($ Id.VSub_DollarName '$suppress_output'))})
                    (C {<func_show_eval_locale>} {(DQ ($ Id.VSub_DollarName '$command'))} 
                      {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<warn>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$need_locks'))}
                                        )
                                        (C {<test>} 
                                          {
                                            (DQ <X> 
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    words: [
                                                      {<cat>}
                                                      {($ Id.VSub_DollarName '$lockfile')}
                                                    ]
                                                    redirects: [
                                                      (redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                              )
                                            )
                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$srcfile'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') <' contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName '$srcfile') <'\n'> <'\n'> 
                                  <
'This indicates that another process is trying to use the same\n'
                                  > <'temporary object file, and libtool could not work around it because\n'> 
                                  <
'your compiler does not support \'-c\' and \'-o\' together.  If you\n'
                                  > <'repeat this compilation, it may succeed, by chance, but you had better\n'> 
                                  <
'avoid parallel builds (make -j) in this platform, or get a better\n'
                                  > <compiler.>
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (C {($ Id.VSub_DollarName '$RM')} 
                                  {($ Id.VSub_DollarName '$removelist')}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16931 16971]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$output_obj'))})
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$output_obj'))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$obj'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_show_eval>} {(SQ <'$MV "$output_obj" "$obj"'>)} 
                              {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                            )
                          ]
                          spids: [17029 17057]
                        )
                      ]
                    )
                  ]
                  spids: [16812 16825]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {<func_write_libtool_object>} {(DQ ($ Id.VSub_DollarName '$libobj'))} 
                      {(DQ ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$objname'))} {(DQ ($ Id.VSub_DollarName '$objname'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$need_locks'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:removelist)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$lockfile')}
                                  spids: [17126]
                                )
                              ]
                            )
                            (C {($ Id.VSub_DollarName '$RM')} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                          ]
                          spids: [17109 17123]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {($ Id.VSub_DollarName '$opt_help')})
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<compile>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))})
                (C {<func_mode_compile>} 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Number 1>
                      suffix_op: 
                        (suffix_op.Unary
                          tok: <Id.VTest_Plus '+'>
                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                        )
                    )
                  }
                )
              ]
            )
          ]
        )
      ]
    )
    (command.ShFunction
      name: func_mode_help
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName '$opt_mode')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [(C {<func_help>})]
                  spids: [17202 17204 17218 -1]
                )
                (case_arm
                  pat_list: [{<clean>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=clean RM [RM-OPTION]... FILE...\n'> <'\n'> <'Remove files from the build directory.\n'> <'\n'> 
                          <
'RM is the name of the program to use to delete files associated with each FILE\n'
                          > <'(typically \'/bin/rm\').  RM-OPTIONS are options (such as \'-f\') to be passed\n'> <'to RM.\n'> 
                          <'\n'> <'If FILE is a libtool library, object or program, all the files associated\n'> 
                          <'with it are deleted. Otherwise, only FILE itself is deleted using RM.'>
                        )
                      }
                    )
                  ]
                  spids: [17222 17223 17245 -1]
                )
                (case_arm
                  pat_list: [{<compile>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE\n'> <'\n'> <'Compile a source file into a libtool library object.\n'> <'\n'> 
                          <'This mode accepts the following additional options:\n'> <'\n'> <'  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE\n'> 
                          <
'  -no-suppress      do not suppress compiler output for multiple passes\n'
                          > <'  -prefer-pic       try to build PIC objects only\n'> 
                          <'  -prefer-non-pic   try to build non-PIC objects only\n'> <'  -shared           do not build a \'.o\' file suitable for static linking\n'> 
                          <
'  -static           only build a \'.o\' file suitable for static linking\n'
                          > <'  -Wc,FLAG          pass FLAG directly to the compiler\n'> <'\n'> 
                          <
'COMPILE-COMMAND is a command to be used in creating a \'standard\' object file\n'
                          > <'from the given SOURCEFILE.\n'> <'\n'> 
                          <
'The output file name is determined by removing the directory component from\n'
                          > <'SOURCEFILE, then substituting the C source code suffix \'.c\' with the\n'> 
                          <'library object suffix, \'.lo\'.'>
                        )
                      }
                    )
                  ]
                  spids: [17249 17250 17282 -1]
                )
                (case_arm
                  pat_list: [{<execute>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=execute COMMAND [ARGS]...\n'> <'\n'> <'Automatically set library path, then run a program.\n'> <'\n'> 
                          <'This mode accepts the following additional options:\n'> <'\n'> <'  -dlopen FILE      add the directory containing FILE to the library path\n'> <'\n'> 
                          <
'This mode sets the library path environment variable according to \'-dlopen\'\n'
                          > <'flags.\n'> <'\n'> <'If any of the ARGS are libtool executable wrappers, then they are translated\n'> 
                          <
'into their corresponding uninstalled binary, and any of their required library\n'
                          > <'directories are added to the library path.\n'> <'\n'> 
                          <'Then, COMMAND is executed, with ARGS as arguments.'>
                        )
                      }
                    )
                  ]
                  spids: [17286 17287 17315 -1]
                )
                (case_arm
                  pat_list: [{<finish>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=finish [LIBDIR]...\n'> <'\n'> <'Complete the installation of libtool libraries.\n'> <'\n'> 
                          <'Each LIBDIR is a directory that contains libtool libraries.\n'> <'\n'> <'The commands that this mode executes may require superuser privileges.  Use\n'> 
                          <
'the \'--dry-run\' option if you just want to see what would be executed.'
                          >
                        )
                      }
                    )
                  ]
                  spids: [17319 17320 17340 -1]
                )
                (case_arm
                  pat_list: [{<install>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=install INSTALL-COMMAND...\n'> <'\n'> <'Install executables or libraries.\n'> <'\n'> 
                          <
'INSTALL-COMMAND is the installation command.  The first component should be\n'
                          > <'either the \'install\' or \'cp\' program.\n'> <'\n'> 
                          <'The following components of INSTALL-COMMAND are treated specially:\n'> <'\n'> <'  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation\n'> <'\n'> 
                          <
'The rest of the components are interpreted as arguments to that command (only\n'
                          > <'BSD-compatible install options are recognized).'>
                        )
                      }
                    )
                  ]
                  spids: [17344 17345 17370 -1]
                )
                (case_arm
                  pat_list: [{<link>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=link LINK-COMMAND...\n'> <'\n'> <'Link object files or libraries together to form another library, or to\n'> 
                          <'create an executable program.\n'> <'\n'> <'LINK-COMMAND is a command using the C compiler that you would use to create\n'> 
                          <'a program from several object files.\n'> <'\n'> <'The following components of LINK-COMMAND are treated specially:\n'> <'\n'> 
                          <'  -all-static       do not do any dynamic linking at all\n'> <'  -avoid-version    do not add a version suffix if possible\n'> 
                          <
'  -bindir BINDIR    specify path to binaries directory (for systems where\n'
                          > <'                    libraries must be found in the PATH setting at runtime)\n'> 
                          <
'  -dlopen FILE      \'-dlpreopen\' FILE if it cannot be dlopened at runtime\n'
                          > <'  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols\n'> 
                          <
'  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)\n'
                          > <'  -export-symbols SYMFILE\n'> 
                          <'                    try to export only the symbols listed in SYMFILE\n'> <'  -export-symbols-regex REGEX\n'> 
                          <'                    try to export only the symbols matching REGEX\n'> <'  -LLIBDIR          search LIBDIR for required installed libraries\n'> 
                          <
'  -lNAME            OUTPUT-FILE requires the installed library libNAME\n'
                          > <'  -module           build a library that can dlopened\n'> 
                          <'  -no-fast-install  disable the fast-install mode\n'> <'  -no-install       link a not-installable executable\n'> 
                          <
'  -no-undefined     declare that a library does not refer to external symbols\n'
                          > <'  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects\n'> 
                          <
'  -objectlist FILE  use a list of object files found in FILE to specify objects\n'
                          > <'  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)\n'> 
                          <'  -precious-files-regex REGEX\n'> <'                    don\'t remove output files matching REGEX\n'> 
                          <'  -release RELEASE  specify package release information\n'> <'  -rpath LIBDIR     the created library will eventually be installed in LIBDIR\n'> 
                          <
'  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries\n'
                          > <'  -shared           only do dynamic linking of libtool libraries\n'> 
                          <
'  -shrext SUFFIX    override the standard shared library file extension\n'
                          > <'  -static           do not do any dynamic linking of uninstalled libtool libraries\n'> 
                          <'  -static-libtool-libs\n'> <'                    do not do any dynamic linking of libtool libraries\n'> 
                          <'  -version-info CURRENT[:REVISION[:AGE]]\n'> <'                    specify library version info [each variable defaults to 0]\n'> 
                          <
'  -weak LIBNAME     declare that the target provides the LIBNAME interface\n'
                          > <'  -Wc,FLAG\n'> <'  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler\n'> 
                          <'  -Wl,FLAG\n'> <'  -Xlinker FLAG     pass linker-specific FLAG directly to the linker\n'> 
                          <
'  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)\n'
                          > <'\n'> <'All other options (arguments beginning with \'-\') are ignored.\n'> <'\n'> 
                          <
'Every other argument is treated as a filename.  Files ending in \'.la\' are\n'
                          > <'treated as uninstalled libtool libraries, other files are standard or library\n'> 
                          <'object files.\n'> <'\n'> <'If the OUTPUT-FILE ends in \'.la\', then a libtool library is created,\n'> 
                          <
'only library objects (\'.lo\' files) may be specified, and \'-rpath\' is\n'
                          > <'required, except when creating a convenience library.\n'> <'\n'> 
                          <
'If OUTPUT-FILE ends in \'.a\' or \'.lib\', then a standard library is created\n'
                          > <'using \'ar\' and \'ranlib\', or on Windows using \'lib\'.\n'> <'\n'> 
                          <'If OUTPUT-FILE ends in \'.lo\' or \'.'> ($ Id.VSub_DollarName '$objext') <'\', then a reloadable object file\n'> 
                          <'is created, otherwise an executable program is created.'>
                        )
                      }
                    )
                  ]
                  spids: [17374 17375 17453 -1]
                )
                (case_arm
                  pat_list: [{<uninstall>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...\n'> <'\n'> <'Remove libraries from an installation directory.\n'> <'\n'> 
                          <
'RM is the name of the program to use to delete files associated with each FILE\n'
                          > <'(typically \'/bin/rm\').  RM-OPTIONS are options (such as \'-f\') to be passed\n'> <'to RM.\n'> 
                          <'\n'> <'If FILE is a libtool library, all the files associated with it are deleted.\n'> 
                          <'Otherwise, only FILE itself is deleted using RM.'>
                        )
                      }
                    )
                  ]
                  spids: [17457 17458 17480 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_help>} 
                      {(DQ <'invalid operation mode \''> ($ Id.VSub_DollarName '$opt_mode') <'\''>)}
                    )
                  ]
                  spids: [17484 17485 17497 -1]
                )
              ]
            )
            (C {<echo>})
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'Try \''> ($ Id.VSub_DollarName '$progname') 
                  <' --help\' for more information about other modes.'>
                )
              }
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {($ Id.VSub_DollarName '$opt_help')})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<Id.Lit_Colon ':'>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$opt_help'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<func_mode_help>})]
                  spids: [17529 17542]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {<func_help>} {<noexit>})
                        (command.ForEach
                          iter_name: opt_mode
                          iter_words: [
                            {<compile>}
                            {<link>}
                            {<execute>}
                            {<install>}
                            {<finish>}
                            {<uninstall>}
                            {<clean>}
                          ]
                          do_arg_iter: F
                          body: (command.DoGroup children:[(C {<func_mode_help>})])
                        )
                      ]
                    )
                    (C {($ Id.VSub_DollarName '$SED')} {<-n>} {(SQ <'1p; 2,$s/^Usage:/  or: /p'>)})
                  ]
                  negated: F
                )
                (command.Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {<func_help>} {<noexit>})
                        (command.ForEach
                          iter_name: opt_mode
                          iter_words: [
                            {<compile>}
                            {<link>}
                            {<execute>}
                            {<install>}
                            {<finish>}
                            {<uninstall>}
                            {<clean>}
                          ]
                          do_arg_iter: F
                          body: (command.DoGroup children:[(C {<echo>}) (C {<func_mode_help>})])
                        )
                      ]
                    )
                    (C {($ Id.VSub_DollarName '$SED')} 
                      {
                        (SQ <'1d\n'> <'      /^When reporting/,/^Report/{\n'> <'\tH\n'> <'\td\n'> 
                          <'      }\n'> <'      $x\n'> <'      /information about other modes/d\n'> <'      /more detailed .*MODE/d\n'> 
                          <'      s/^Usage:.*--mode=\\([^ ]*\\) .*/Description of \\1 mode:/'>
                        )
                      }
                    )
                  ]
                  negated: F
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
          spids: [17521 17526]
        )
      ]
    )
    (command.ShFunction
      name: func_mode_execute
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [17693]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                (C {<func_fatal_help>} {(DQ <'you must specify a COMMAND'>)})
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$opt_dlopen')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$file'))})
                        (C {<func_fatal_help>} 
                          {(DQ <'\''> ($ Id.VSub_DollarName '$file') <'\' is not a file'>)}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dir)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [17755]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (C {<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
                                  spids: [17777]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$lib') 
                                      <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlname)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [17810]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [17813]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dlname'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$library_names'))})
                                        (C {<func_warning>} 
                                          {
                                            (DQ <'\''> ($ Id.VSub_DollarName '$file') 
                                              <'\' was not linked with \'-export-dynamic\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [17828 17839]
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [17888]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-f>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                  ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$dlname')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<dir>} 
                                      {(DQ <'/'> ($ Id.VSub_DollarName '$objdir'))}
                                    )
                                  ]
                                  spids: [17893 17908]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                      ($ Id.VSub_DollarName '$dlname')
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'cannot find \''> ($ Id.VSub_DollarName '$dlname') 
                                              <'\' in \''> ($ Id.VSub_DollarName '$dir') <'\' or \''> ($ Id.VSub_DollarName '$dir') <'/'> 
                                              ($ Id.VSub_DollarName '$objdir') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [17924 17939]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [17765 17767 17963 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [17990]
                                )
                              ]
                            )
                          ]
                          spids: [17967 17969 17994 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_warning>} 
                              {(DQ <'\'-dlopen\' is ignored for non-libtool libraries and objects'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [17998 17999 18012 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:absdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.AndOr
                                    ops: [Id.Op_DAmp]
                                    children: [
                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                      (C {<pwd>})
                                    ]
                                  )
                              )
                            }
                          spids: [18023]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$absdir'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:dir)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$absdir')}
                              spids: [18049]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<eval>} 
                                      {
                                        (DQ <'test -z '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$shlibpath_var') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <dir> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [18058 18071]
                        )
                      ]
                      else_action: [
                        (C {<eval>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'dir:'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_execute_magic)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$magic')}
                  spids: [18118]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:args)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [18127]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$file')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<-> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <.la>}
                            {<Id.Lit_Star '*'> <.lo>}
                          ]
                          spids: [18145 18158 18160 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_ltwrapper_script_p>} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$progdir') <'/'> 
                                              ($ Id.VSub_DollarName '$program')
                                            }
                                          spids: [18194]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18171 18180]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_ltwrapper_executable_p>} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_ltwrapper_scriptname>} 
                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                    )
                                    (C {<func_source>} 
                                      {
                                        (DQ 
                                          ($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result')
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$progdir') <'/'> 
                                              ($ Id.VSub_DollarName '$program')
                                            }
                                          spids: [18230]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18200 18209]
                                )
                              ]
                            )
                          ]
                          spids: [18163 18164 18239 -1]
                        )
                      ]
                    )
                    (C {<func_append_quoted>} {<args>} {(DQ ($ Id.VSub_DollarName '$file'))})
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {($ Id.VSub_DollarName '$opt_dry_run')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                  <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'shlibpath_var='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                  ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {<echo>} {(DQ <'export '> ($ Id.VSub_DollarName '$shlibpath_var'))})
                          ]
                          spids: [18274 18285]
                        )
                      ]
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {(DQ ($ Id.VSub_DollarName '$cmd') ($ Id.VSub_DollarName '$args'))}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [18262 18267]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<eval>} {(DQ <'export '> ($ Id.VSub_DollarName '$shlibpath_var'))})]
                      spids: [18329 18340]
                    )
                  ]
                )
                (command.ForEach
                  iter_name: lt_var
                  iter_words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
                  do_arg_iter: F
                  body: 
                    (command.DoGroup
                      children: [
                        (C {<eval>} 
                          {
                            (DQ <'if test '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{save_'> ($ Id.VSub_DollarName '$lt_var') 
                              <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = set; then\n'> <'                '> 
                              ($ Id.VSub_DollarName '$lt_var') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <save_> 
                              ($ Id.VSub_DollarName '$lt_var') <'; export '> ($ Id.VSub_DollarName '$lt_var') <'\n'> <'\t      else\n'> <'\t\t'> 
                              ($ Id.VSub_DollarName '$lt_unset') <' '> ($ Id.VSub_DollarName '$lt_var') <'\n'> <'\t      fi'>
                            )
                          }
                        )
                      ]
                    )
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:exec_cmd)
                      op: assign_op.Equal
                      rhs: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <cmd> 
                          ($ Id.VSub_DollarName '$args')
                        }
                      spids: [18423]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<execute>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))})
        (C {<func_mode_execute>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_finish
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [18473]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [18476]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:admincmds)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [18479]
                )
              ]
            )
            (command.ForEach
              iter_name: opt
              iter_words: [
                {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                {
                  (braced_var_sub
                    token: <Id.VSub_Number 1>
                    suffix_op: 
                      (suffix_op.Unary
                        tok: <Id.VTest_Plus '+'>
                        arg_word: {(DQ ($ Id.VSub_At '$@'))}
                      )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$opt'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<libdirs>} {(DQ <' '> ($ Id.VSub_DollarName '$opt'))})
                          ]
                          spids: [18505 18516]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$opt'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_lalib_unsafe_p>} 
                                              {(DQ ($ Id.VSub_DollarName '$opt'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<libs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$opt'))}
                                    )
                                  ]
                                  spids: [18544 18553]
                                )
                              ]
                              else_action: [
                                (C {<func_warning>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$opt') 
                                      <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [18530 18541]
                        )
                      ]
                      else_action: [
                        (C {<func_fatal_error>} 
                          {(DQ <'invalid argument \''> ($ Id.VSub_DollarName '$opt') <'\''>)}
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libs'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$lt_sysroot'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:sysroot_regex)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$lt_sysroot'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName '$sed_make_literal_regex')
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [18629]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:sysroot_cmd)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'s/'> <Id.Lit_BadBackslash '\\'> <'([ \']'> 
                                        <Id.Lit_BadBackslash '\\'> <')'> ($ Id.VSub_DollarName '$sysroot_regex') <'/'> <Id.Lit_BadBackslash '\\'> <'1/g;'>
                                      )
                                    }
                                  spids: [18649]
                                )
                              ]
                            )
                          ]
                          spids: [18615 18626]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:sysroot_cmd)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [18666]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: lib
                              iter_words: [{($ Id.VSub_DollarName '$libs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'removing references to '> 
                                          ($ Id.VSub_DollarName '$lt_sysroot') <' and \'=\' prefixes from '> ($ Id.VSub_DollarName '$lib')
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [18677 18682]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:tmpdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: (C {<func_mktempdir>})
                                  )
                                }
                              spids: [18713]
                            )
                          ]
                        )
                        (command.ForEach
                          iter_name: lib
                          iter_words: [{($ Id.VSub_DollarName '$libs')}]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName '$SED')}
                                    {<-e>}
                                    {
                                      (DQ ($ Id.VSub_DollarName '$sysroot_cmd') <' s/'> 
                                        <Id.Lit_BadBackslash '\\'> <'([ \']-[LR]'> <Id.Lit_BadBackslash '\\'> <')=/'> <Id.Lit_BadBackslash '\\'> <'1/g; s/'> 
                                        <Id.Lit_BadBackslash '\\'> <'([ \']'> <Id.Lit_BadBackslash '\\'> <')=/'> <Id.Lit_BadBackslash '\\'> <'1/g'>
                                      )
                                    }
                                    {($ Id.VSub_DollarName '$lib')}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName '$tmpdir') <'/tmp-la'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (C {<mv>} {<-f>} {($ Id.VSub_DollarName '$tmpdir') <'/tmp-la'>} 
                                  {($ Id.VSub_DollarName '$lib')}
                                )
                              ]
                            )
                        )
                        (C {(${ Id.VSub_Name RM) <r>} {(DQ ($ Id.VSub_DollarName '$tmpdir'))})
                      ]
                    )
                  ]
                  spids: [18601 18612]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$finish_cmds') 
                                      ($ Id.VSub_DollarName '$finish_eval')
                                    )
                                  }
                                )
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libdirs'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [{($ Id.VSub_DollarName '$libdirs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$finish_cmds'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName '$finish_cmds'))} {(SQ <'admincmds="$admincmds\n'>) (DQ ($ Id.VSub_DollarName '$cmd')) (SQ <'"'>)}
                                    )
                                  ]
                                  spids: [18831 18842]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$finish_eval'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$finish_eval') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmds'))})
                                        (C {<func_append>} {<admincmds>} 
                                          {(DQ <'\n'> <'       '> ($ Id.VSub_DollarName '$cmds'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18869 18880]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [18794 18816]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$opt_quiet')})
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$finish_cmds') 
                                      ($ Id.VSub_DollarName '$finish_eval')
                                    )
                                  }
                                )
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libdirs'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {(DQ <---------------------------------------------------------------------->)}
                    )
                    (C {<echo>} {(DQ <'Libraries have been installed in:'>)})
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [{($ Id.VSub_DollarName '$libdirs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {(DQ <'   '> ($ Id.VSub_DollarName '$libdir'))}
                            )
                          ]
                        )
                    )
                    (C {<echo>})
                    (C {<echo>} 
                      {(DQ <'If you ever happen to want to link against installed libraries'>)}
                    )
                    (C {<echo>} 
                      {(DQ <'in a given directory, LIBDIR, you must either use libtool, and'>)}
                    )
                    (C {<echo>} 
                      {(DQ <'specify the full pathname of the library, or use the \'-LLIBDIR\''>)}
                    )
                    (C {<echo>} {(DQ <'flag during linking and do at least one of the following:'>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ <'   - add LIBDIR to the \''> 
                                  ($ Id.VSub_DollarName '$shlibpath_var') <'\' environment variable'>
                                )
                              }
                            )
                            (C {<echo>} {(DQ <'     during execution'>)})
                          ]
                          spids: [19035 19046]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ <'   - add LIBDIR to the \''> 
                                  ($ Id.VSub_DollarName '$runpath_var') <'\' environment variable'>
                                )
                              }
                            )
                            (C {<echo>} {(DQ <'     during linking'>)})
                          ]
                          spids: [19068 19079]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: {<LIBDIR>}
                                  spids: [19115]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'flag='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              }
                            )
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'   - use the \''> ($ Id.VSub_DollarName '$flag') 
                                  <'\' linker flag'>
                                )
                              }
                            )
                          ]
                          spids: [19101 19112]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$admincmds'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'   - have your system administrator run these commands:'> 
                                  ($ Id.VSub_DollarName '$admincmds')
                                )
                              }
                            )
                          ]
                          spids: [19140 19151]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-f>} {<'/etc/ld.so.conf'>})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ 
                                  <
'   - have your system administrator add LIBDIR to \'/etc/ld.so.conf\''
                                  >
                                )
                              }
                            )
                          ]
                          spids: [19165 19174]
                        )
                      ]
                    )
                    (C {<echo>})
                    (C {<echo>} 
                      {(DQ <'See any operating system documentation about shared libraries for'>)}
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<solaris2.> <Id.Lit_LBracket '['> <6789> <Id.Lit_RBracket ']'>}
                            {<solaris2.1> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (C {<echo>} 
                              {
                                (DQ 
                                  <
'more information, such as the ld(1), crle(1) and ld.so(8) manual'
                                  >
                                )
                              }
                            )
                            (C {<echo>} {(DQ <pages.>)})
                          ]
                          spids: [19205 19214 19231 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<echo>} 
                              {
                                (DQ 
                                  <'more information, such as the ld(1) and ld.so(8) manual pages.'>
                                )
                              }
                            )
                          ]
                          spids: [19234 19235 19245 -1]
                        )
                      ]
                    )
                    (C {<echo>} 
                      {(DQ <---------------------------------------------------------------------->)}
                    )
                  ]
                  spids: [18942 18964]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<finish>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))})
        (C {<func_mode_finish>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_install
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          ops: [Id.Op_DPipe Id.Op_DPipe]
                          children: [
                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$SHELL'))} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                            )
                            (C {<test>} {<'/bin/sh'>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$nonopt')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <shtool> <Id.Lit_Star '*'>}]
                                  action: [(C {<Id.Lit_Colon ':'>})]
                                  spids: [19354 19357 19360 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(C {<false>})]
                                  spids: [19362 19363 19366 -1]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  action: [
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$nonopt'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_prog)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result') <' '>)}
                          spids: [19385]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [19392]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [19315 19371]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:install_prog)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [19402]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:arg)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$nonopt')}
                      spids: [19405]
                    )
                  ]
                )
              ]
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
            (C {<func_append>} {<install_prog>} 
              {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_shared_prog)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$install_prog')}
                  spids: [19437]
                )
              ]
            )
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$install_prog') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <'/'> <Id.Lit_RBracket ']'> <cp> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_cp)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [19463]
                        )
                      ]
                    )
                  ]
                  spids: [19452 19461 19466 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_cp)
                          op: assign_op.Equal
                          rhs: {<false>}
                          spids: [19472]
                        )
                      ]
                    )
                  ]
                  spids: [19469 19470 19475 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dest)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:files)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19489]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opts)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19492]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prev)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19495]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_type)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19498]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:isdir)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [19501]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:stripme)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [19505]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:no_mode)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [19508]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg2)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [19520]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dest'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<files>} {(DQ <' '> ($ Id.VSub_DollarName '$dest'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dest)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [19547]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [19523 19534]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-d>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:isdir)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [19568]
                                )
                              ]
                            )
                          ]
                          spids: [19565 19566 19571 -1]
                        )
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {($ Id.VSub_DollarName '$install_cp')})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Sentence
                                      child: (C {<Id.Lit_Colon ':'>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [19578 19583]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:prev)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$arg')}
                                      spids: [19591]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [19574 19575 19598 -1]
                        )
                        (case_arm
                          pat_list: [{<-g>} {<-m>} {<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [19613]
                                )
                              ]
                            )
                          ]
                          spids: [19601 19610 19617 -1]
                        )
                        (case_arm
                          pat_list: [{<-s>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:stripme)
                                  op: assign_op.Equal
                                  rhs: {(DQ <' -s'>)}
                                  spids: [19624]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [19620 19621 19633 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          spids: [19636 19638 19641 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prev'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<X-m>} {<Id.Lit_Equals '='>} 
                                                          {(DQ <X> ($ Id.VSub_DollarName '$prev'))}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$install_override_mode'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:arg2)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$install_override_mode')}
                                                  spids: [19693]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:no_mode)
                                                  op: assign_op.Equal
                                                  rhs: {<false>}
                                                  spids: [19697]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [19666 19690]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [19704]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [19652 19663]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:dest)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$arg')}
                                      spids: [19710]
                                    )
                                  ]
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Continue continue>
                                )
                              ]
                            )
                          ]
                          spids: [19644 19645 19720 -1]
                        )
                      ]
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                    (C {<func_append>} {<install_prog>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$arg2'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg2'))})]
                          spids: [19748 19759]
                        )
                      ]
                    )
                    (C {<func_append>} {<install_shared_prog>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$install_prog'))})
                (C {<func_fatal_help>} {(DQ <'you must specify an install program'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prev'))})
                (C {<func_fatal_help>} 
                  {(DQ <'the \''> ($ Id.VSub_DollarName '$prev') <'\' option requires an argument'>)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$install_override_mode'))})
                                (C {($ Id.VSub_DollarName '$no_mode')})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {($ Id.VSub_DollarName '$install_cp')})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Sentence
                              child: (C {<Id.Lit_Colon ':'>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [19846 19851]
                        )
                      ]
                      else_action: [
                        (C {<func_quote_for_eval>} 
                          {(DQ ($ Id.VSub_DollarName '$install_override_mode'))}
                        )
                        (C {<func_append>} {<install_shared_prog>} 
                          {(DQ <' -m '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                        )
                      ]
                    )
                  ]
                  spids: [19828 19843]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$files'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dest'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<func_fatal_help>} {(DQ <'no file or destination specified'>)})]
                          spids: [19897 19908]
                        )
                      ]
                      else_action: [(C {<func_fatal_help>} {(DQ <'you must specify a destination'>)})]
                    )
                  ]
                  spids: [19883 19894]
                )
              ]
            )
            (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} {(DQ ($ Id.VSub_DollarName '$dest'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dest)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                  spids: [19953]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$dest'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isdir)
                      op: assign_op.Equal
                      rhs: {<Id.Lit_Colon ':'>}
                      spids: [19972]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {($ Id.VSub_DollarName '$isdir')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:destdir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$dest')}
                          spids: [19984]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:destname)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [19988]
                        )
                      ]
                    )
                  ]
                  spids: [19976 19981]
                )
              ]
              else_action: [
                (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName '$dest'))} {(DQ )} {(DQ <.>)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:destdir)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                      spids: [20008]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:destname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                      spids: [20012]
                    )
                  ]
                )
                (command.Sentence
                  child: (C {<set>} {<dummy>} {($ Id.VSub_DollarName '$files')})
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} {<1>})
                    (C {<func_fatal_help>} 
                      {(DQ <'\''> ($ Id.VSub_DollarName '$dest') <'\' is not a directory'>)}
                    )
                  ]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$destdir')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                      <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  spids: [20064 20081 20083 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ForEach
                      iter_name: file
                      iter_words: [{($ Id.VSub_DollarName '$files')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                                  spids: [20109 20111 20113 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'\''> ($ Id.VSub_DollarName '$destdir') 
                                          <'\' must be an absolute directory name'>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [20116 20117 20129 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [20086 20087 20138 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_install_magic)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$magic')}
                  spids: [20153]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:staticlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20158]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:future_libdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20161]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:current_libdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20164]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$files')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                          action: [
                            (C {<func_append>} {<staticlibs>} {(DQ <' '> ($ Id.VSub_DollarName '$file'))})
                          ]
                          spids: [20191 20194 20211 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (C {<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
                                  spids: [20227]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$file') 
                                      <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [20256]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:old_library)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [20259]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [20262]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$destdir'))} 
                                              {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$current_libdirs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [20307 20314 20316 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<current_libdirs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [20319 20320 20331 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [20277 20294]
                                )
                              ]
                              else_action: [
                                (command.Case
                                  to_match: {(DQ ($ Id.VSub_DollarName '$future_libdirs') <' '>)}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                      spids: [20354 20361 20363 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (C {<func_append>} {<future_libdirs>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                        )
                                      ]
                                      spids: [20366 20367 20378 -1]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ <'/'>)} {(DQ )})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [20402]
                                )
                              ]
                            )
                            (C {<func_append>} {<dir>} {(DQ ($ Id.VSub_DollarName '$objdir'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ ($ Id.VSub_DollarName '$destdir'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {
                                                          (DQ <'s%'> ($ Id.VSub_DollarName '$libdir') 
                                                            <Id.Lit_Dollar '$'> <'%%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [20434]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$inst_prefix_dir'))} 
                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$destdir'))}
                                        )
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'error: cannot install \''> 
                                              ($ Id.VSub_DollarName '$file') <'\' to a directory not ending in '> ($ Id.VSub_DollarName '$libdir')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$inst_prefix_dir'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$relink_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ 
                                                                    <
's%@inst_prefix_dir@%-inst-prefix-dir '
                                                                    > ($ Id.VSub_DollarName '$inst_prefix_dir') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [20531]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20513 20524]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:relink_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$relink_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {(DQ <'s%@inst_prefix_dir@%%'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [20556]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_warning>} 
                                      {(DQ <'relinking \''> ($ Id.VSub_DollarName '$file') <'\''>)}
                                    )
                                    (C {<func_show_eval>} 
                                      {(DQ ($ Id.VSub_DollarName '$relink_command'))} 
                                      {(SQ <'func_fatal_error "error: relink '>) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\''>
                                        ) (SQ <'$file'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                                        (SQ <' with the above command before installing it"'>)
                                      }
                                    )
                                  ]
                                  spids: [20416 20427]
                                )
                              ]
                            )
                            (command.Sentence
                              child: (C {<set>} {<dummy>} {($ Id.VSub_DollarName '$library_names')})
                              terminator: <Id.Op_Semi _>
                            )
                            (C {<shift>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:realname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number '$1')}
                                          spids: [20642]
                                        )
                                      ]
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:srcname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$realname')}
                                          spids: [20650]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:srcname)
                                              op: assign_op.Equal
                                              rhs: {(${ Id.VSub_Name realname) <T>}
                                              spids: [20664]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$install_shared_prog') <' '> 
                                          ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$srcname') <' '> ($ Id.VSub_DollarName '$destdir') <'/'> 
                                          ($ Id.VSub_DollarName '$realname')
                                        )
                                      } {(SQ <'exit $?'>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tstripme)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$stripme')}
                                          spids: [20697]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host_os')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<cygwin> <Id.Lit_Star '*'>}
                                            {<mingw> <Id.Lit_Star '*'>}
                                            {<pw32> <Id.Lit_Star '*'>}
                                            {<cegcc> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$realname')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'> <.dll.a>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tstripme)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [20740]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [20735 20737 20743 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20708 20725 20749 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<os2> <Id.Lit_Star '*'>}]
                                          action: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$realname')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'> <_dll.a>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tstripme)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [20769]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [20764 20766 20772 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20752 20754 20778 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$tstripme'))}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$striplib'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_show_eval>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$striplib') <' '> 
                                                  ($ Id.VSub_DollarName '$destdir') <'/'> ($ Id.VSub_DollarName '$realname')
                                                )
                                              } {(SQ <'exit $?'>)}
                                            )
                                          ]
                                          spids: [20784 20805]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} 
                                                      {<0>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_name: linkname
                                              do_arg_iter: T
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkname'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$realname'))}
                                                        )
                                                        (C {<func_show_eval>} 
                                                          {
                                                            (DQ <'(cd '> 
                                                              ($ Id.VSub_DollarName '$destdir') <' && { '> ($ Id.VSub_DollarName '$LN_S') <' -f '> ($ Id.VSub_DollarName '$realname') <' '> 
                                                              ($ Id.VSub_DollarName '$linkname') <' || { '> ($ Id.VSub_DollarName '$RM') <' '> ($ Id.VSub_DollarName '$linkname') <' && '> 
                                                              ($ Id.VSub_DollarName '$LN_S') <' '> ($ Id.VSub_DollarName '$realname') <' '> ($ Id.VSub_DollarName '$linkname') <'; }; })'>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [20827 20840]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$destdir') <'/'> 
                                              ($ Id.VSub_DollarName '$realname')
                                            }
                                          spids: [20920]
                                        )
                                      ]
                                    )
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName '$postinstall_cmds'))} {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [20628 20639]
                                )
                              ]
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                  spids: [20952]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:instname)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$dir') <'/'> (${ Id.VSub_Name name) <i>}
                                  spids: [20956]
                                )
                              ]
                            )
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                  ($ Id.VSub_DollarName '$instname') <' '> ($ Id.VSub_DollarName '$destdir') <'/'> ($ Id.VSub_DollarName '$name')
                                )
                              } {(SQ <'exit $?'>)}
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_library'))})
                                (C {<func_append>} {<staticlibs>} 
                                  {
                                    (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                      ($ Id.VSub_DollarName '$old_library')
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [20215 20217 21009 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destname'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$destdir') <'/'> 
                                              ($ Id.VSub_DollarName '$destname')
                                            }
                                          spids: [21041]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21027 21038]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                      spids: [21057]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$destdir') <'/'> 
                                          ($ Id.VSub_DollarName '$destfile')
                                        }
                                      spids: [21061]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$destfile')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                                  action: [
                                    (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$destfile'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:staticdest)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                          spids: [21094]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21082 21084 21098 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:staticdest)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$destfile')}
                                          spids: [21107]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21111]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21101 21104 21114 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'cannot copy a libtool object to \''> 
                                          ($ Id.VSub_DollarName '$destfile') <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [21117 21118 21130 -1]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destfile'))})
                                (C {<func_show_eval>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                      ($ Id.VSub_DollarName '$file') <' '> ($ Id.VSub_DollarName '$destfile')
                                    )
                                  } {(SQ <'exit $?'>)}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:staticobj)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                          spids: [21200]
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                          ) <'staticobj '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <staticdest>
                                        )
                                      } {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [21173 21186]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [21013 21015 21228 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destname'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$destdir') <'/'> 
                                              ($ Id.VSub_DollarName '$destname')
                                            }
                                          spids: [21254]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21240 21251]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                      spids: [21270]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$destdir') <'/'> 
                                          ($ Id.VSub_DollarName '$destfile')
                                        }
                                      spids: [21274]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:stripped_ext)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [21296]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:file)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [21341]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:stripped_ext)
                                                  op: assign_op.Equal
                                                  rhs: {<.exe>}
                                                  spids: [21345]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21311 21324]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21306 21308 21352 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<func_ltwrapper_executable_p>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_ltwrapper_scriptname>} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:wrapper)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                      )
                                                    }
                                                  spids: [21401]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21382 21391]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                          {(DQ ($ Id.VSub_DollarName '$file'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:wrapper)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                              spids: [21422]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21370 21379 21429 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:wrapper)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$file')}
                                          spids: [21436]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21432 21433 21440 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_ltwrapper_script_p>} 
                                              {(DQ ($ Id.VSub_DollarName '$wrapper'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:notinst_deplibs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21458]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21461]
                                        )
                                      ]
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$wrapper'))})
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-z>} 
                                          {
                                            (DQ 
                                              ($ Id.VSub_DollarName '$generated_by_libtool_version')
                                            )
                                          }
                                        )
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'invalid libtool wrapper script \''> 
                                              ($ Id.VSub_DollarName '$wrapper') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize)
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                          spids: [21499]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: lib
                                      iter_words: [{($ Id.VSub_DollarName '$notinst_deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [21519]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-f>} 
                                                              {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_source>} 
                                                      {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                    )
                                                  ]
                                                  spids: [21522 21533]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libfile)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$libdir') <'/'> 
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {(SQ <'s%^.*/%%g'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [21546]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName '$libdir')
                                                                    )
                                                                  }
                                                                )
                                                                (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$libfile'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_warning>} 
                                                      {
                                                        (DQ <'\''> ($ Id.VSub_DollarName '$lib') 
                                                          <'\' has not been installed in \''> ($ Id.VSub_DollarName '$libdir') <'\''>
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:finalize)
                                                          op: assign_op.Equal
                                                          rhs: {<false>}
                                                          spids: [21605]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21568 21591]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21616]
                                        )
                                      ]
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$wrapper'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:outputname)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21627]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$fast_install')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$relink_command')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$finalize'
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:tmpdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: (C {<func_mktempdir>})
                                                                      )
                                                                    }
                                                                  spids: [21671]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_basename>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$file') 
                                                                  ($ Id.VSub_DollarName 
'$stripped_ext'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:file)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                      )
                                                                    }
                                                                  spids: [21687]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: outputname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName '$tmpdir') <'/'> ($ Id.VSub_DollarName '$file')
                                                                    }
                                                                  spids: [21691]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: relink_command
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (C 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$ECHO'
                                                                                  )
                                                                                } {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                                                              )
                                                                              (C 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$SED'
                                                                                  )
                                                                                } {(SQ <'s%@OUTPUT@%'>) (DQ ($ Id.VSub_DollarName '$outputname')) (SQ <'%g'>)}
                                                                              )
                                                                            ]
                                                                            negated: F
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [21701]
                                                                )
                                                              ]
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe]
                                                              children: [
                                                                (C 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
'$opt_quiet'
                                                                    )
                                                                  }
                                                                )
                                                                (BraceGroup
                                                                  children: [
                                                                    (C {<func_quote_for_expand>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$relink_command'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<eval>} 
                                                                      {
                                                                        (DQ <'func_echo '> 
                                                                          ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<eval>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$relink_command'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [(C {<Id.Lit_Colon ':'>})]
                                                                  spids: [21753 21762]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<func_error>} 
                                                                  {
                                                                    (DQ <'error: relink \''> 
                                                                      ($ Id.VSub_DollarName '$file') <'\' with the above command before installing it'>
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$opt_dry_run'
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {(${ Id.VSub_Name RM) <r>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$tmpdir'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ControlFlow
                                                                  token: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:file)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$outputname'
                                                                      )
                                                                    }
                                                                  spids: [21799]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [21663 21668]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_warning>} 
                                                          {
                                                            (DQ <'cannot relink \''> 
                                                              ($ Id.VSub_DollarName '$file') <'\''>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21630 21653]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:file)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$file') 
                                                                ($ Id.VSub_DollarName '$stripped_ext')
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%'> <Id.Lit_BadBackslash '\\'> 
                                                                <'([^/]*'> <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_Dollar '$'> <'%'> ($ Id.VSub_DollarName '$objdir') <'/'> 
                                                                <Id.Lit_BadBackslash '\\'> <'1%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [21828]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21446 21455]
                                )
                              ]
                            )
                            (command.Case
                              to_match: 
                                {($ Id.VSub_DollarName '$install_prog') <Id.Lit_Comma ','> 
                                  ($ Id.VSub_DollarName '$host')
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <'/usr/bin/install'> <Id.Lit_Star '*'> 
                                      <Id.Lit_Comma ','> <Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {($ Id.VSub_DollarName '$file') <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName '$destfile')
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                              <Id.Lit_Star '*'> <.exe>
                                            }
                                          ]
                                          spids: [21908 21913 21920 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:destfile)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$destfile') <.exe>}
                                                  spids: [21930]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21923 21927 21935 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                              <.exe>
                                            }
                                          ]
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$destfile'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:destfile)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [21959]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21938 21942 21963 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21889 21896 21969 -1]
                                )
                              ]
                            )
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$install_prog') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'stripme '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'file '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <destfile>
                                )
                              } {(SQ <'exit $?'>)}
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {(${ Id.VSub_Name RM) <r>} 
                                          {(DQ ($ Id.VSub_DollarName '$tmpdir'))}
                                        )
                                      ]
                                      spids: [21996 22007]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [21232 21233 22023 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$staticlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:name)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                          spids: [22052]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlib)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName '$destdir') <'/'> ($ Id.VSub_DollarName '$name')}
                          spids: [22061]
                        )
                      ]
                    )
                    (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$oldlib'))} 
                      {<func_convert_file_msys_to_w32>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:tool_oldlib)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_to_tool_file_result')}
                          spids: [22076]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'file '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <oldlib>
                        )
                      } {(SQ <'exit $?'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$stripme'))})
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_striplib'))})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$old_striplib') <' '> 
                                  ($ Id.VSub_DollarName '$tool_oldlib')
                                )
                              } {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [22098 22119]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$old_postinstall_cmds'))} 
                      {(SQ <'exit $?'>)}
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$future_libdirs'))})
                (C {<func_warning>} 
                  {
                    (DQ <'remember to run \''> ($ Id.VSub_DollarName '$progname') <' --finish'> 
                      ($ Id.VSub_DollarName '$future_libdirs') <'\''>
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$current_libdirs'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:current_libdirs)
                              op: assign_op.Equal
                              rhs: {(DQ <' -n'> ($ Id.VSub_DollarName '$current_libdirs'))}
                              spids: [22204]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:exec_cmd)
                          op: assign_op.Equal
                          rhs: {(SQ <'$SHELL "$progpath" $preserve_args --finish$current_libdirs'>)}
                          spids: [22211]
                        )
                      ]
                    )
                  ]
                  spids: [22182 22193]
                )
              ]
              else_action: [
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<install>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))})
        (C {<func_mode_install>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_generate_dlsyms
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_outputname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [22275]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_originator)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [22279]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_pic_p)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 3>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<false>})
                      )
                    }
                  spids: [22283]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_prefix)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                {(DQ ($ Id.VSub_DollarName '$my_originator'))}
                              )
                              (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s%[^a-zA-Z0-9]%_%g'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [22291]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_dlsyms)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [22311]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$dlfiles') 
                                      ($ Id.VSub_DollarName '$dlprefiles')
                                    )
                                  }
                                )
                                (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$dlself'))}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$NM'))})
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$global_symbol_pipe'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_dlsyms)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name my_outputname) <S.c>}
                                  spids: [22367]
                                )
                              ]
                            )
                          ]
                          spids: [22343 22364]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'not configured to extract global symbols from dlpreopened files'>)}
                        )
                      ]
                    )
                  ]
                  spids: [22315 22340]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$my_dlsyms'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$my_dlsyms')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          spids: [22412 22414 22416 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.c>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:nlist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      ($ Id.VSub_DollarName '$my_outputname') <.nm>
                                    }
                                  spids: [22428]
                                )
                              ]
                            )
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$RM') <' '> ($ Id.VSub_DollarName '$nlist') 
                                  <' '> (${ Id.VSub_Name nlist) <'S '> (${ Id.VSub_Name nlist) <T>
                                )
                              }
                            )
                            (C {<func_verbose>} 
                              {
                                (DQ <'creating '> ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                  ($ Id.VSub_DollarName '$my_dlsyms')
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName '$ECHO')}
                                    {
                                      (DQ <'/* '> ($ Id.VSub_DollarName '$my_dlsyms') 
                                        <' - symbol resolution table for \''> ($ Id.VSub_DollarName '$my_outputname') <'\' dlsym emulation. */\n'> <'/* Generated by '> 
                                        ($ Id.VSub_DollarName '$PROGRAM') <' (GNU '> ($ Id.VSub_DollarName '$PACKAGE') <') '> ($ Id.VSub_DollarName '$VERSION') <' */\n'> <'\n'> 
                                        <'#ifdef __cplusplus\n'> <'extern '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <C> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <' {\n'> <'#endif\n'> <'\n'> 
                                        <
'#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))\n'
                                        > <'#pragma GCC diagnostic ignored '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <-Wstrict-prototypes> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'#endif\n'> <'\n'> 
                                        <
'/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */\n'
                                        > <'#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE\n'> 
                                        <
'/* DATA imports from DLLs on WIN32 can\'t be const, because runtime\n'
                                        > <'   relocations are performed -- see ld\'s documentation on pseudo-relocs.  */\n'> 
                                        <'# define LT_DLSYM_CONST\n'> <'#elif defined __osf__\n'> 
                                        <
'/* This system does not cope well with relocations in const data.  */\n'
                                        > <'# define LT_DLSYM_CONST\n'> <'#else\n'> <'# define LT_DLSYM_CONST const\n'> <'#endif\n'> <'\n'> 
                                        <'#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)\n'> <'\n'> <'/* External symbol declarations for the compiler. */'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            ($ Id.VSub_DollarName '$my_dlsyms')
                                          )
                                        }
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$dlself'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'generating symbol list for \''> 
                                          ($ Id.VSub_DollarName '$output') <'\''>
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [{<echo>} {(SQ <': @PROGRAM@ '>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:progfiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$objs') 
                                                            ($ Id.VSub_DollarName '$old_deplibs')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SP2NL')})
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [22583]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: progfile
                                      iter_words: [{($ Id.VSub_DollarName '$progfiles')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_to_tool_file>} 
                                              {(DQ ($ Id.VSub_DollarName '$progfile'))} {<func_convert_file_msys_to_w32>}
                                            )
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'extracting global C symbols from \''> 
                                                  ($ Id.VSub_DollarName '$func_to_tool_file_result') <'\''>
                                                )
                                              }
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {<eval>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$NM') <' '> 
                                                      ($ Id.VSub_DollarName 
'$func_to_tool_file_result'
                                                      ) <' | '> ($ Id.VSub_DollarName '$global_symbol_pipe') <' >> \''> ($ Id.VSub_DollarName '$nlist') <'\''>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$exclude_expsyms'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)})
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22664 22675]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)})
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22706 22717]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$outputname') <.exp>
                                                    }
                                                  spids: [22766]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$RM')} 
                                                      {($ Id.VSub_DollarName '$export_symbols')}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$SED') 
                                                          <' -n -e \'/^: @PROGRAM@ '> <Id.Lit_Dollar '$'> <'/d\' -e \'s/^.* '> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> 
                                                          <')'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_BadBackslash '\\'> <'1/p\' '>
                                                        ) (SQ <'< "$nlist" > "$export_symbols"'>)
                                                      }
                                                    )
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$host')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> <cygwin> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <mingw> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <cegcc> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (C {<eval>} 
                                                              {(DQ <'echo EXPORTS '>) 
                                                                (SQ 
                                                                  <
'> "$output_objdir/$outputname.def"'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<eval>} 
                                                              {
                                                                (SQ 
                                                                  <
'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [22813 22829 22849 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22752 22763]
                                        )
                                      ]
                                      else_action: [
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                            (BraceGroup
                                              children: [
                                                (C {<eval>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$SED') <' -e \'s/'> 
                                                      <Id.Lit_BadBackslash '\\'> <'([].[*^'> <Id.Lit_Dollar '$'> <']'> <Id.Lit_BadBackslash '\\'> <')/'> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\\\'>
                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_BadBackslash '\\'> 
                                                      <'1/g\' -e \'s/^/ /\' -e \'s/'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_Dollar '$'> <'/\''>
                                                    ) (SQ <' < "$export_symbols" > "$output_objdir/$outputname.exp"'>)
                                                  }
                                                )
                                                (C {<eval>} 
                                                  {
                                                    (SQ 
                                                      <
'$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)})
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$host')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                                      ]
                                                      action: [
                                                        (C {<eval>} 
                                                          {(DQ <'echo EXPORTS '>) 
                                                            (SQ 
                                                              <'> "$output_objdir/$outputname.def"'>
                                                            )
                                                          }
                                                        )
                                                        (C {<eval>} 
                                                          {
                                                            (SQ 
                                                              <
'cat "$nlist" >> "$output_objdir/$outputname.def"'
                                                              >
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      spids: [22914 22930 22950 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22535 22548]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: dlprefile
                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'extracting global C symbols from \''> 
                                          ($ Id.VSub_DollarName '$dlprefile') <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$dlprefile'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                          spids: [22994]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<func_win32_import_lib_p>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$dlprefile')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_tr_sh>} 
                                                      {(DQ ($ Id.VSub_DollarName '$dlprefile'))}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'curr_lafile='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                          ) <libfile_> ($ Id.VSub_DollarName '$func_tr_sh_result')
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: dlprefile_dlbasename
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [23057]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DAmp]
                                                                      children: [
                                                                        (C {<test>} {<-n>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$curr_lafile'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<func_lalib_p>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$curr_lafile'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: dlprefile_dlname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.AndOr
                                                                            ops: [Id.Op_DAmp]
                                                                            children: [
                                                                              (C {<source>} 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName '$curr_lafile'
                                                                                    )
                                                                                  )
                                                                                }
                                                                              )
                                                                              (C {<echo>} 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName '$dlname'
                                                                                    )
                                                                                  )
                                                                                }
                                                                              )
                                                                            ]
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [23086]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$dlprefile_dlname'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C {<func_basename>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$dlprefile_dlname'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: 
dlprefile_dlbasename
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                              )
                                                                            }
                                                                          spids: [23127]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [23106 23117]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
'$sharedlib_from_linklib_cmd'
                                                                    )
                                                                  } {(DQ ($ Id.VSub_DollarName '$dlprefile'))}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: dlprefile_dlbasename
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$sharedlib_from_linklib_result'
                                                                          )
                                                                        }
                                                                      spids: [23145]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [23060 23079]
                                                        )
                                                      ]
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe]
                                                      children: [
                                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                        (BraceGroup
                                                          children: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$dlprefile_dlbasename'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C {<eval>} 
                                                                      {
                                                                        (SQ 
                                                                          <
'$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
                                                                          >
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [23162 23173]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<func_warning>} 
                                                                  {
                                                                    (DQ 
                                                                      <
'Could not compute DLL name from '
                                                                      > ($ Id.VSub_DollarName '$name')
                                                                    )
                                                                  }
                                                                )
                                                                (C {<eval>} 
                                                                  {
                                                                    (SQ 
                                                                      <
'$ECHO ": $name " >> "$nlist"'
                                                                      >
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_to_tool_file>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$dlprefile')
                                                                )
                                                              } {<func_convert_file_msys_to_w32>}
                                                            )
                                                            (C {<eval>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$NM') <' '> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                  ) ($ Id.VSub_DollarName '$func_to_tool_file_result') 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                  ) <' 2>/dev/null | '> ($ Id.VSub_DollarName '$global_symbol_pipe') <' |\n'> <'\t            '> 
                                                                  ($ Id.VSub_DollarName '$SED') <' -e \'/I __imp/d\' -e \'s/I __nm_/D /;s/_nm__//\' >> \''> ($ Id.VSub_DollarName '$nlist') <'\''>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [23028 23037]
                                                )
                                              ]
                                              else_action: [
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (BraceGroup
                                                      children: [
                                                        (C {<eval>} 
                                                          {(SQ <'$ECHO ": $name " >> "$nlist"'>)}
                                                        )
                                                        (C {<func_to_tool_file>} 
                                                          {(DQ ($ Id.VSub_DollarName '$dlprefile'))} {<func_convert_file_msys_to_w32>}
                                                        )
                                                        (C {<eval>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName '$NM') <' '> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                              ) ($ Id.VSub_DollarName '$func_to_tool_file_result') 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                              ) <' 2>/dev/null | '> ($ Id.VSub_DollarName '$global_symbol_pipe') <' >> \''> 
                                                              ($ Id.VSub_DollarName '$nlist') <'\''>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23005 23021 23286 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (C {<eval>} {(SQ <'$ECHO ": $name " >> "$nlist"'>)})
                                                    (C {<func_to_tool_file>} 
                                                      {(DQ ($ Id.VSub_DollarName '$dlprefile'))} {<func_convert_file_msys_to_w32>}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$NM') <' '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) ($ Id.VSub_DollarName '$func_to_tool_file_result') 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) <' 2>/dev/null | '> ($ Id.VSub_DollarName '$global_symbol_pipe') <' >> \''> 
                                                          ($ Id.VSub_DollarName '$nlist') <'\''>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23289 23290 23335 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (BraceGroup
                                  children: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$nlist'))})
                                        (command.Simple
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$exclude_expsyms'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$EGREP')}
                                                {<-v>}
                                                {
                                                  (DQ <' ('> ($ Id.VSub_DollarName '$exclude_expsyms') 
                                                    <')'> <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                                {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist')) <T>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (C {($ Id.VSub_DollarName '$MV')} 
                                              {(DQ ($ Id.VSub_DollarName '$nlist')) <T>} {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          spids: [23376 23387]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (command.Simple
                                                          words: [
                                                            {($ Id.VSub_DollarName '$GREP')}
                                                            {<-v>}
                                                            {(DQ <'^: '>)}
                                                          ]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Less '<'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: 
                                                                {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.Simple
                                                                          words: [{<sort>} {<-k>} {<3>}]
                                                                          redirects: [
                                                                            (redir
                                                                              op: <Id.Redir_Less '<'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: {<'/dev/null'>}
                                                                            )
                                                                            (redir
                                                                              op: 
                                                                                <Id.Redir_Great '>'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: {<'/dev/null'>}
                                                                            )
                                                                            (redir
                                                                              op: 
                                                                                <Id.Redir_GreatAnd 
'2>&'
                                                                                >
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 2
                                                                                )
                                                                              arg: {<1>}
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [(C {<sort>} {<-k>} {<3>})]
                                                              spids: [23452 23470]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<sort>} {<Id.Lit_Other '+'> <2>})
                                                          ]
                                                        )
                                                        (command.Simple
                                                          words: [{<uniq>}]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {(DQ ($ Id.VSub_DollarName '$nlist')) 
                                                                  <S>
                                                                }
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                      negated: F
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [(C {<Id.Lit_Colon ':'>})]
                                          spids: [23433 23504]
                                        )
                                      ]
                                      else_action: [
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName '$GREP')} {<-v>} {(DQ <'^: '>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist')) <S>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-f>} 
                                                      {(DQ ($ Id.VSub_DollarName '$nlist')) <S>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eval>} 
                                              {(DQ ($ Id.VSub_DollarName '$global_symbol_to_cdecl')) 
                                                (SQ <' < "$nlist"S >> "$output_objdir/$my_dlsyms"'>)
                                              }
                                            )
                                          ]
                                          spids: [23539 23551]
                                        )
                                      ]
                                      else_action: [
                                        (command.Simple
                                          words: [{<echo>} {(SQ <'/* NONE */'>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                    ($ Id.VSub_DollarName '$my_dlsyms')
                                                  )
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} {(SQ <'$RM "${nlist}I"'>)})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$global_symbol_to_import'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eval>} 
                                              {(DQ ($ Id.VSub_DollarName '$global_symbol_to_import')) 
                                                (SQ <' < "$nlist"S > "$nlist"I'>)
                                              }
                                            )
                                          ]
                                          spids: [23593 23604]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'\n'> 
                                            <
'/* The mapping between symbol names and symbols.  */\n'
                                            > <'typedef struct {\n'> <'  const char *name;\n'> <'  void *address;\n'> <'} lt_dlsymlist;\n'> 
                                            <'extern LT_DLSYM_CONST lt_dlsymlist\n'> <lt_> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[];'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-s>} 
                                                      {(DQ ($ Id.VSub_DollarName '$nlist')) <I>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'static void lt_syminit(void)\n'> <'{\n'> 
                                                    <'  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_'> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols;\n'> <'  for (; symbol->name; ++symbol)\n'> 
                                                    <'    {'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$SED')}
                                                {
                                                  (SQ 
                                                    <
's/.*/      if (STREQ (symbol->name, \\"&\\")) symbol->address = (void *) \\&&;/'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist')) <I>}
                                                )
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              words: [{<echo>} {(DQ <'    }\n'> <'}'>)}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23650 23662]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'LT_DLSYM_CONST lt_dlsymlist\n'> <lt_> 
                                            (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[] =\n'> <'{ {'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                            ($ Id.VSub_DollarName '$my_originator') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <', (void *) 0},'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-s>} 
                                                      {(DQ ($ Id.VSub_DollarName '$nlist')) <I>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'  {'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                    ) <'@INIT@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <', (void *) &lt_syminit},'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23758 23770]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$need_lib_prefix')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<no>}]
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
'$global_symbol_to_c_name_address'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23804 23805 23829 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
'$global_symbol_to_c_name_address_lib_prefix'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23832 23833 23857 -1]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'  {0, (void *) 0}\n'> <'};\n'> <'\n'> 
                                            <
'/* This works around a problem in FreeBSD linker */\n'
                                            > <'#ifdef FREEBSD_WORKAROUND\n'> <'static const void *lt_preloaded_setup() {\n'> <'  return lt_'> 
                                            (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols;\n'> <'}\n'> <'#endif\n'> <'\n'> <'#ifdef __cplusplus\n'> <'}\n'> <'#endif'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [23903]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$compile_command') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> (DQ <' -static '>) <Id.Lit_Star '*'>}]
                                  spids: [23916 23921 23923 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd2.> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd3.0> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsdelf3.0> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName '$pic_flag') 
                                                        <' -DFREEBSD_WORKAROUND'>
                                                      )
                                                    }
                                                  spids: [23977]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23957 23974 23984 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-hpux> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <' '> ($ Id.VSub_DollarName '$pic_flag'))}
                                                  spids: [23995]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23987 23992 24001 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$my_pic_p')})
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          name: pic_flag_for_symtable
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$pic_flag'))
                                                        }
                                                      spids: [24012]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [24004 24005 24019 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23926 23927 24025 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:symtab_cflags)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [24031]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: arg
                              iter_words: [{($ Id.VSub_DollarName '$LTCFLAGS')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                          spids: [24053 24062 24064 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<symtab_cflags>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          ]
                                          spids: [24067 24068 24079 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<func_show_eval>} 
                              {
                                (SQ 
                                  <
'(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")'
                                  >
                                )
                              } {(SQ <'exit $?'>)}
                            )
                            (C {<func_show_eval>} 
                              {
                                (SQ 
                                  <
'$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
                                  >
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:symfileobj)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      (${ Id.VSub_Name my_outputname) <S.> ($ Id.VSub_DollarName '$objext')
                                    }
                                  spids: [24121]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-f>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                          <'/'> ($ Id.VSub_DollarName '$my_outputname') <.def>
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$compile_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$my_outputname') <'.def '> ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [24174]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$finalize_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$my_outputname') <'.def '> ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [24200]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [24157 24171]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:compile_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$compile_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [24229]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:finalize_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$finalize_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [24251]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24138 24154 24276 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compile_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$compile_command')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [24283]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_command')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [24305]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24279 24280 24327 -1]
                                )
                              ]
                            )
                          ]
                          spids: [22419 22421 24333 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ <'unknown suffix for \''> ($ Id.VSub_DollarName '$my_dlsyms') 
                                  <'\''>
                                )
                              }
                            )
                          ]
                          spids: [24336 24337 24349 -1]
                        )
                      ]
                    )
                  ]
                  spids: [22391 22402]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:compile_command)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                    {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                  )
                                  (C {($ Id.VSub_DollarName '$SED')} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [24375]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:finalize_command)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                    {(DQ ($ Id.VSub_DollarName '$finalize_command'))}
                                  )
                                  (C {($ Id.VSub_DollarName '$SED')} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [24395]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_cygming_gnu_implib_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_to_tool_file>} {(DQ ($ Id.VSub_Number '$1'))} {<func_convert_file_msys_to_w32>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_cygming_gnu_implib_tmp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$NM')} 
                                {(DQ ($ Id.VSub_DollarName '$func_to_tool_file_result'))}
                              )
                              (C {<eval>} {(DQ ($ Id.VSub_DollarName '$global_symbol_pipe'))})
                              (C {($ Id.VSub_DollarName '$EGREP')} 
                                {(SQ <' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'>)}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [24453]
                )
              ]
            )
            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$func_cygming_gnu_implib_tmp'))})
          ]
        )
    )
    (command.ShFunction
      name: func_cygming_ms_implib_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (C {<func_to_tool_file>} {(DQ ($ Id.VSub_Number '$1'))} {<func_convert_file_msys_to_w32>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_cygming_ms_implib_tmp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$NM')} 
                                {(DQ ($ Id.VSub_DollarName '$func_to_tool_file_result'))}
                              )
                              (C {<eval>} {(DQ ($ Id.VSub_DollarName '$global_symbol_pipe'))})
                              (C {($ Id.VSub_DollarName '$GREP')} {(SQ <_NULL_IMPORT_DESCRIPTOR>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [24525]
                )
              ]
            )
            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$func_cygming_ms_implib_tmp'))})
          ]
        )
    )
    (command.ShFunction
      name: func_win32_libid
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:win32_libid_type)
                  op: assign_op.Equal
                  rhs: {<unknown>}
                  spids: [24597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:win32_fileres)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<file>} {<-L>} {($ Id.VSub_Number '$1')}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [24601]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$win32_fileres')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <ar> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                      <archive> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.KW_Import import> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) <library> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 archive import'>)}
                          spids: [24638]
                        )
                      ]
                    )
                  ]
                  spids: [24623 24632 24644 -1]
                )
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <ar> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                      <archive> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<eval>} {($ Id.VSub_DollarName '$OBJDUMP')} {<-f>} 
                                          {($ Id.VSub_Number '$1')}
                                        )
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName '$SED')} {<-e>} {(SQ <10q>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$EGREP')}
                                            {
                                              (SQ 
                                                <
'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      negated: F
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$nm_interface')}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ <'MS dumpbin'>)}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {<func_cygming_ms_implib_p>} 
                                                      {(DQ ($ Id.VSub_Number '$1'))}
                                                    )
                                                    (C {<func_cygming_gnu_implib_p>} 
                                                      {(DQ ($ Id.VSub_Number '$1'))}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:win32_nmres)
                                                  op: assign_op.Equal
                                                  rhs: {<Id.KW_Import import>}
                                                  spids: [24735]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [24714 24732]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:win32_nmres)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [24742]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24708 24711 24748 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_to_tool_file>} {(DQ ($ Id.VSub_Number '$1'))} 
                                      {<func_convert_file_msys_to_w32>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:win32_nmres)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<eval>} {($ Id.VSub_DollarName '$NM')} {<-f>} 
                                                        {<posix>} {<-A>} {(DQ ($ Id.VSub_DollarName '$func_to_tool_file_result'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-n>} {<-e>} 
                                                        {
                                                          (SQ <'\n'> <'\t    1,100{\n'> 
                                                            <'\t\t/ I /{\n'> <'\t\t    s|.*|import|\n'> <'\t\t    p\n'> <'\t\t    q\n'> <'\t\t}\n'> <'\t    }'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [24764]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24751 24752 24816 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$win32_nmres')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.KW_Import import> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive import'>)}
                                          spids: [24833]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24829 24831 24837 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive static'>)}
                                          spids: [24843]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24840 24841 24847 -1]
                                )
                              ]
                            )
                          ]
                          spids: [24662 24698]
                        )
                      ]
                    )
                  ]
                  spids: [24647 24652 24856 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <DLL> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 DLL'>)}
                          spids: [24865]
                        )
                      ]
                    )
                  ]
                  spids: [24859 24862 24871 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <executable> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$win32_fileres')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <MS> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <Windows> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <PE> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <Intel> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'x86 DLL'>)}
                                  spids: [24902]
                                )
                              ]
                            )
                          ]
                          spids: [24890 24899 24908 -1]
                        )
                      ]
                    )
                  ]
                  spids: [24874 24877 24914 -1]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$win32_libid_type'))})
          ]
        )
    )
    (command.ShFunction
      name: func_cygming_dll_for_implib
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:sharedlib_from_linklib_result)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {($ Id.VSub_DollarName '$DLLTOOL')} {<--identify-strict>} {<--identify>} 
                            {(DQ ($ Id.VSub_Number '$1'))}
                          )
                      )
                    }
                  spids: [24968]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_cygming_dll_for_implib_fallback_core
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:match_literal)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Number '$1'))})
                              (C {($ Id.VSub_DollarName '$SED')} 
                                {(DQ ($ Id.VSub_DollarName '$sed_make_literal_regex'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [25031]
                )
              ]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName '$OBJDUMP')}
                    {<-s>}
                    {<--section>}
                    {(DQ ($ Id.VSub_Number '$1'))}
                    {(DQ ($ Id.VSub_Number '$2'))}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (C {($ Id.VSub_DollarName '$SED')} 
                  {(SQ <'/^Contents of section '>) (DQ ($ Id.VSub_DollarName '$match_literal')) 
                    (SQ <':/{\n'> 
                      <'      # Place marker at beginning of archive member dllname section\n'> <'      s/.*/====MARK====/\n'> <'      p\n'> <'      d\n'> <'    }\n'> 
                      <'    # These lines can sometimes be longer than 43 characters, but\n'> <'    # are always uninteresting\n'> <'    /:[\t ]*file format pe[i]\\{,1\\}-/d\n'> 
                      <'    /^In archive [^:]*:/d\n'> <'    # Ensure marker is printed\n'> <'    /^====MARK====/p\n'> 
                      <'    # Remove all lines with less than 43 characters\n'> <'    /^.\\{43\\}/!d\n'> <'    # From remaining lines, remove first 43 characters\n'> 
                      <'    s/^.\\{43\\}//'>
                    )
                  }
                )
                (C {($ Id.VSub_DollarName '$SED')} {<-n>} 
                  {
                    (SQ <'\n'> 
                      <'      # Join marker and all lines until next marker into a single line\n'> <'      /^====MARK====/ b para\n'> <'      H\n'> <'      $ b para\n'> <'      b\n'> <'      :para\n'> 
                      <'      x\n'> <'      s/\\n//g\n'> <'      # Remove the marker\n'> <'      s/^====MARK====//\n'> 
                      <'      # Remove trailing dots and whitespace\n'> <'      s/[\\. \\t]*$//\n'> <'      # Print\n'> <'      /./p'>
                    )
                  }
                )
                (C {($ Id.VSub_DollarName '$SED')} {<-e>} {(SQ <'/^\\./d;/^.\\./d;q'>)})
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: func_cygming_dll_for_implib_fallback
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<func_cygming_gnu_implib_p>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sharedlib_from_linklib_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (C {<func_cygming_dll_for_implib_fallback_core>} {(SQ <'.idata$7'>)} 
                                    {(DQ ($ Id.VSub_Number '$1'))}
                                  )
                              )
                            }
                          spids: [25242]
                        )
                      ]
                    )
                  ]
                  spids: [25226 25235]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<func_cygming_ms_implib_p>} {(DQ ($ Id.VSub_Number '$1'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sharedlib_from_linklib_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (C {<func_cygming_dll_for_implib_fallback_core>} {(SQ <'.idata$6'>)} 
                                    {(DQ ($ Id.VSub_Number '$1'))}
                                  )
                              )
                            }
                          spids: [25274]
                        )
                      ]
                    )
                  ]
                  spids: [25258 25267]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:sharedlib_from_linklib_result)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [25297]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_extract_an_archive
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:f_ex_an_ar_dir)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [25321]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:f_ex_an_ar_oldlib)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [25328]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$lock_old_archive_extraction'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:lockfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$f_ex_an_ar_oldlib') <.lock>}
                          spids: [25348]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_Until until>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                    (command.Simple
                                      words: [
                                        {<ln>}
                                        {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                        {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_echo>} 
                              {
                                (DQ <'Waiting for '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' to be removed'>
                                )
                              }
                            )
                            (C {<sleep>} {<2>})
                          ]
                        )
                    )
                  ]
                  spids: [25332 25345]
                )
              ]
            )
            (C {<func_show_eval>} 
              {
                (DQ <'(cd '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <'f_ex_an_ar_dir && '> ($ Id.VSub_DollarName '$AR') <' x '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <f_ex_an_ar_oldlib> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <')'>
                )
              } {(SQ <'stat=$?; rm -f "$lockfile"; exit $stat'>)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$lock_old_archive_extraction'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                      ]
                    )
                  ]
                  spids: [25418 25431]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Subshell
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {($ Id.VSub_DollarName '$AR')} {<t>} 
                                      {(DQ ($ Id.VSub_DollarName '$f_ex_an_ar_oldlib'))}
                                    )
                                    (C {<sort>})
                                    (command.Simple
                                      words: [{<sort>} {<-uc>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [25450 25479]
                )
              ]
              else_action: [
                (C {<func_fatal_error>} 
                  {
                    (DQ <'object name conflicts in archive: '> 
                      ($ Id.VSub_DollarName '$f_ex_an_ar_dir') <'/'> ($ Id.VSub_DollarName '$f_ex_an_ar_oldlib')
                    )
                  }
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_extract_archives
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:my_gentop)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [25519]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_oldlibs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: 
                          (suffix_op.Unary
                            tok: <Id.VTest_Plus '+'>
                            arg_word: {(DQ ($ Id.VSub_At '$@'))}
                          )
                      )
                    }
                  spids: [25526]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_oldobjs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25536]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xlib)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25539]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xabs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25542]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xdir)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25545]
                )
              ]
            )
            (command.ForEach
              iter_name: my_xlib
              iter_words: [{($ Id.VSub_DollarName '$my_oldlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$my_xlib')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\\\'>
                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                              <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_xabs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$my_xlib')}
                                  spids: [25591]
                                )
                              ]
                            )
                          ]
                          spids: [25572 25589 25594 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_xabs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) 
                                      (DQ <'/'> ($ Id.VSub_DollarName '$my_xlib'))
                                    }
                                  spids: [25600]
                                )
                              ]
                            )
                          ]
                          spids: [25597 25598 25611 -1]
                        )
                      ]
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$my_xlib'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xlib)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                          spids: [25624]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xlib_u)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$my_xlib')}
                          spids: [25628]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: (C {<Id.Lit_Colon ':'>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$extracted_archives') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' '> ($ Id.VSub_DollarName '$my_xlib_u') <' '>) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$extracted_serial')} 
                                      {<Id.Lit_Other '+'>} {<1>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:extracted_serial)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                          spids: [25670]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:my_xlib_u)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<lt> ($ Id.VSub_DollarName '$extracted_serial') <-> 
                                              ($ Id.VSub_DollarName '$my_xlib')
                                            }
                                          spids: [25674]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25651 25658 25680 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [25683 25684 25688 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:extracted_archives)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$extracted_archives') <' '> 
                                ($ Id.VSub_DollarName '$my_xlib_u')
                              )
                            }
                          spids: [25697]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xdir)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName '$my_gentop') <'/'> 
                              ($ Id.VSub_DollarName '$my_xlib_u')
                            }
                          spids: [25705]
                        )
                      ]
                    )
                    (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName '$my_xdir'))})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_verbose>} {(DQ <'Extracting '> ($ Id.VSub_DollarName '$my_xabs'))})
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (BraceGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_orig_dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                              )
                                            }
                                          spids: [25752]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<cd>} {($ Id.VSub_DollarName '$my_xdir')})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_archive)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$my_xabs')}
                                          spids: [25771]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_curdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                              )
                                            }
                                          spids: [25775]
                                        )
                                      ]
                                    )
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$darwin_archive'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_base_archive)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                          spids: [25790]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_arches)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DPipe]
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            words: [
                                                              {($ Id.VSub_DollarName '$LIPO')}
                                                              {<-info>}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$darwin_archive'
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: [
                                                              (redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            words: [
                                                              {($ Id.VSub_DollarName '$GREP')}
                                                              {<Architectures>}
                                                            ]
                                                            redirects: [
                                                              (redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                      (C {<true>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [25794]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$darwin_arches'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_arches)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$darwin_arches'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                                {(SQ <'s/.*are://'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [25838]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_arch)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [25860]
                                                )
                                              ]
                                            )
                                            (C {<func_verbose>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$darwin_base_archive') 
                                                  <' has multiple architectures '> ($ Id.VSub_DollarName '$darwin_arches')
                                                )
                                              }
                                            )
                                            (command.ForEach
                                              iter_name: darwin_arch
                                              iter_words: [{($ Id.VSub_DollarName '$darwin_arches')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_mkdir_p>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$$') <'/'> 
                                                          ($ Id.VSub_DollarName 
'$darwin_base_archive'
                                                          ) <-> ($ Id.VSub_DollarName '$darwin_arch')
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName '$LIPO')} {<-thin>} 
                                                      {($ Id.VSub_DollarName '$darwin_arch')} {<-output>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$$') <'/'> 
                                                          ($ Id.VSub_DollarName 
'$darwin_base_archive'
                                                          ) <-> ($ Id.VSub_DollarName '$darwin_arch') <'/'> ($ Id.VSub_DollarName '$darwin_base_archive')
                                                        )
                                                      } {(DQ ($ Id.VSub_DollarName '$darwin_archive'))}
                                                    )
                                                    (C {<cd>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$$') <'/'> 
                                                          ($ Id.VSub_DollarName 
'$darwin_base_archive'
                                                          ) <-> ($ Id.VSub_DollarName '$darwin_arch')
                                                        )
                                                      }
                                                    )
                                                    (C {<func_extract_an_archive>} 
                                                      {
                                                        (DQ 
                                                          (command_sub
                                                            left_token: <Id.Left_Backtick '`'>
                                                            child: (C {<pwd>})
                                                          )
                                                        )
                                                      } {(DQ ($ Id.VSub_DollarName '$darwin_base_archive'))}
                                                    )
                                                    (C {<cd>} 
                                                      {(DQ ($ Id.VSub_DollarName '$darwin_curdir'))}
                                                    )
                                                    (C {($ Id.VSub_DollarName '$RM')} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$$') <'/'> 
                                                          ($ Id.VSub_DollarName 
'$darwin_base_archive'
                                                          ) <-> ($ Id.VSub_DollarName '$darwin_arch') <'/'> ($ Id.VSub_DollarName '$darwin_base_archive')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_filelist)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<find>} 
                                                                {<unfat-> ($ Id.VSub_Dollar '$$')} {<-type>} {<f>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.o>} {<-print>} 
                                                                {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.lo>} {<-print>}
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$sed_basename'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {<sort>} {<-u>})
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [25978]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_file)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [26029]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_files)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [26032]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: darwin_file
                                              iter_words: [{($ Id.VSub_DollarName '$darwin_filelist')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:darwin_files)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<find>} 
                                                                        {<unfat-> 
                                                                          ($ Id.VSub_Dollar '$$')
                                                                        } {<-name>} {($ Id.VSub_DollarName '$darwin_file')} {<-print>}
                                                                      )
                                                                      (C {<sort>})
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$NL2SP'
                                                                          )
                                                                        }
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                              )
                                                            }
                                                          spids: [26047]
                                                        )
                                                      ]
                                                    )
                                                    (C {($ Id.VSub_DollarName '$LIPO')} {<-create>} 
                                                      {<-output>} {(DQ ($ Id.VSub_DollarName '$darwin_file'))} {($ Id.VSub_DollarName '$darwin_files')}
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {($ Id.VSub_DollarName '$RM')} {<-rf>} 
                                              {<unfat-> ($ Id.VSub_Dollar '$$')}
                                            )
                                            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$darwin_orig_dir'))})
                                          ]
                                          spids: [25824 25835]
                                        )
                                      ]
                                      else_action: [
                                        (C {<cd>} {($ Id.VSub_DollarName '$darwin_orig_dir')})
                                        (C {<func_extract_an_archive>} 
                                          {(DQ ($ Id.VSub_DollarName '$my_xdir'))} {(DQ ($ Id.VSub_DollarName '$my_xabs'))}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [25727 25730 26137 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_extract_an_archive>} {(DQ ($ Id.VSub_DollarName '$my_xdir'))} 
                              {(DQ ($ Id.VSub_DollarName '$my_xabs'))}
                            )
                          ]
                          spids: [26140 26141 26155 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_oldobjs)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName '$my_oldobjs') <' '>) 
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<find>} {($ Id.VSub_DollarName '$my_xdir')} {<-name>} 
                                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                                          <.> ($ Id.VSub_DollarName '$objext')
                                        } {<-print>} {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.lo>} {<-print>}
                                      )
                                      (C {<sort>})
                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [26161]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_extract_archives_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$my_oldobjs')}
                  spids: [26208]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_emit_wrapper
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_emit_wrapper_arg1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<no>})
                      )
                    }
                  spids: [26265]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'#! '> ($ Id.VSub_DollarName '$SHELL') <'\n'> <'\n'> <'# '> 
                  ($ Id.VSub_DollarName '$output') <' - temporary wrapper script for '> ($ Id.VSub_DollarName '$objdir') <'/'> 
                  ($ Id.VSub_DollarName '$outputname') <'\n'> <'# Generated by '> ($ Id.VSub_DollarName '$PROGRAM') <' (GNU '> ($ Id.VSub_DollarName '$PACKAGE') 
                  <') '> ($ Id.VSub_DollarName '$VERSION') <'\n'> <'#\n'> <'# The '> ($ Id.VSub_DollarName '$output') 
                  <' program cannot be directly executed until all the libtool\n'> <'# libraries that it depends on are installed.\n'> <'#\n'> 
                  <'# This wrapper script should never be moved out of the build directory.\n'> <'# If it is, it will not operate correctly.\n'> <'\n'> 
                  <'# Sed substitution that helps us do robust quoting.  It backslashifies\n'> <'# metacharacters that are still active within double-quoted strings.\n'> <'sed_quote_subst=\''> 
                  ($ Id.VSub_DollarName '$sed_quote_subst') <'\'\n'> <'\n'> <'# Be Bourne compatible\n'> <'if test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{ZSH_VERSION+set}'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && (emulate sh) >/dev/null 2>&1; then\n'> <'  emulate sh\n'> <'  NULLCMD=:\n'> 
                  <'  # Zsh 3.x and 4.x performs word splitting on '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}, which\n'> <'  # is contrary to our usage.  Disable this feature.\n'> <'  alias -g \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}\'=\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\'\n'> <'  setopt NO_GLOB_SUBST\n'> <'else\n'> <'  case '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'(set -o) 2>/dev/null'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  <' in *posix*) set -o posix;; esac\n'> <'fi\n'> <'BIN_SH=xpg4; export BIN_SH # for Tru64\n'> <'DUALCASE=1; export DUALCASE # for MKS sh\n'> 
                  <'\n'> <'# The HP-UX ksh and POSIX shell print the target directory to stdout\n'> <'# if CDPATH is set.\n'> 
                  <'(unset CDPATH) >/dev/null 2>&1 && unset CDPATH\n'> <'\n'> <'relink_command='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  ($ Id.VSub_DollarName '$relink_command') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> 
                  <'# This environment variable determines our operation mode.\n'> <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_install_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'  # install mode needs the following variables:\n'> <'  generated_by_libtool_version=\''> 
                  ($ Id.VSub_DollarName '$macro_version') <'\'\n'> <'  notinst_deplibs=\''> ($ Id.VSub_DollarName '$notinst_deplibs') <'\'\n'> <'else\n'> 
                  <'  # When we are sourced in execute mode, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'file and '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO are already set.\n'> <'  if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_execute_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:qECHO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$ECHO'))})
                              (C {($ Id.VSub_DollarName '$SED')} 
                                {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [26406]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'\n'> <'# A function that is used when there is no print builtin or printf.\n'> 
                  <'func_fallback_echo ()\n'> <'{\n'> <'  eval \'cat <<_LTECHO_EOF\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <'1\n'> <'_LTECHO_EOF\'\n'> <'}\n'> <'    ECHO='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  ($ Id.VSub_DollarName '$qECHO') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'  fi\n'> <'\n'> 
                  <'# Very basic option parsing. These options are (a) specific to\n'> <'# the libtool wrapper, (b) are identical between the wrapper\n'> 
                  <'# /script/ and the wrapper /executable/ that is used only on\n'> <'# windows platforms, and (c) all begin with the string '>
                ) <--lt-> 
                (DQ <'\n'> <'# (application programs are unlikely to have options that match\n'> 
                  <'# this pattern).\n'> <'#\n'> <'# There are only two supported options: --lt-debug and\n'> 
                  <'# --lt-dump-script. There is, deliberately, no --lt-help.\n'> <'#\n'> <'# The first argument to this parsing function should be the\n'> <'# script\'s '> 
                  ($ Id.VSub_Number '$0') <' value, followed by '>
                ) ($ Id.VSub_At '$@') 
                (DQ <'.\n'> <'lt_option_debug=\n'> <'func_parse_lt_options ()\n'> <'{\n'> 
                  <'  lt_script_arg0='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'0\n'> <'  shift\n'> <'  for lt_opt\n'> 
                  <'  do\n'> <'    case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_opt> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> 
                  <'    --lt-debug) lt_option_debug=1 ;;\n'> <'    --lt-dump-script)\n'> <'        lt_dump_D='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_script_arg0> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') <' -e \'s/^X//\' -e \'s%/[^/]*'> <Id.Lit_Dollar '$'> <'%%\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'        test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_dump_D> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_script_arg0> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && lt_dump_D=.\n'> <'        lt_dump_F='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_script_arg0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> 
                  ($ Id.VSub_DollarName '$SED') <' -e \'s/^X//\' -e \'s%^.*/%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> 
                  <'        cat '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_dump_D/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_dump_F> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'        exit 0\n'> <'      ;;\n'> <'    --lt-*)\n'> <'        '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'Unrecognized --lt- option: \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_opt\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> 
                  <'        exit 1\n'> <'      ;;\n'> <'    esac\n'> <'  done\n'> <'\n'> <'  # Print the debug banner immediately:\n'> 
                  <'  if test -n '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_option_debug> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'    echo '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$outputname') <':'> ($ Id.VSub_DollarName '$output') <':'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'LINENO: libtool wrapper (GNU '> ($ Id.VSub_DollarName '$PACKAGE') <') '> 
                  ($ Id.VSub_DollarName '$VERSION') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'  fi\n'> <'}\n'> <'\n'> 
                  <'# Used when --lt-debug. Prints its arguments to stdout\n'> <'# (redirection is the responsibility of the caller)\n'> <'func_lt_dump_args ()\n'> <'{\n'> 
                  <'  lt_dump_args_N=1;\n'> <'  for lt_arg\n'> <'  do\n'> <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$outputname') <':'> 
                  ($ Id.VSub_DollarName '$output') <':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'LINENO: newargv['> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_dump_args_N]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_arg> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'    lt_dump_args_N='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'expr '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_dump_args_N + 1'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  done\n'> 
                  <'}\n'> <'\n'> <'# Core function for launching the target application\n'> <'func_exec_program_core ()\n'> 
                  <'{\n'>
                )
              }
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw>}
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'      if test -n '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_option_debug> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'        '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) ($ Id.VSub_DollarName '$outputname') <':'> ($ Id.VSub_DollarName '$output') <':'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'LINENO: newargv[0]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> 
                          <'        func_lt_dump_args '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'} 1>&2\n'> <'      fi\n'> <'      exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [26626 26644 26704 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'      if test -n '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_option_debug> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'        '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) ($ Id.VSub_DollarName '$outputname') <':'> ($ Id.VSub_DollarName '$output') <':'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'LINENO: newargv[0]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> 
                          <'        func_lt_dump_args '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'} 1>&2\n'> <'      fi\n'> <'      exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [26708 26709 26765 -1]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'      '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'0: cannot exec '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'program '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'*'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'      exit 1\n'> <'}\n'> <'\n'> 
                  <'# A function to encapsulate launching the target application\n'> <'# Strips options in the --lt-* namespace from '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@ and\n'> <'# launches target application with the remaining arguments.\n'> 
                  <'func_exec_program ()\n'> <'{\n'> <'  case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'* '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> <'  *'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <' --lt-*)\n'> <'    for lt_wr_arg\n'> <'    do\n'> <'      case '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_wr_arg in\n'> <'      --lt-*) ;;\n'> <'      *) set x '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_wr_arg> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; shift;;\n'> <'      esac\n'> 
                  <'      shift\n'> <'    done ;;\n'> <'  esac\n'> <'  func_exec_program_core '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}\n'> <'}\n'> <'\n'> 
                  <'  # Parse options\n'> <'  func_parse_lt_options '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}\n'> <'\n'> 
                  <'  # Find the directory that this script lives in.\n'> <'  thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%/[^/]*'> <Id.Lit_Dollar '$'> <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> 
                  <'  test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && thisdir=.\n'> <'\n'> <'  # Follow symbolic links until we get to the real thisdir.\n'> <'  file='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -ld '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' -n \'s/.*-> //p\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  while test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; do\n'> <'    destdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%/[^/]*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'%%\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'\n'> <'    # If there was a directory component, then change thisdir.\n'> <'    if test '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'      case '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> <'      ['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]* | [A-Za-z]:['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]*) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' ;;\n'> <'      *) thisdir='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' ;;\n'> <'      esac\n'> 
                  <'    fi\n'> <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%^.*/%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'    file='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -ld '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') <' -n \'s/.*-> //p\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  done\n'> <'\n'> <'  # Usually \'no\', except on cygwin/mingw when embedded into\n'> 
                  <'  # the cwrapper.\n'> <'  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR='> ($ Id.VSub_DollarName '$func_emit_wrapper_arg1') <'\n'> 
                  <'  if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <WRAPPER_SCRIPT_BELONGS_IN_OBJDIR> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <yes> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> 
                  <'    # special case for \'.\'\n'> <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'      thisdir='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <pwd> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'    fi\n'> 
                  <'    # remove .libs from thisdir\n'> <'    case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> <'    *['> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]'> ($ Id.VSub_DollarName '$objdir') 
                  <' ) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> 
                  ($ Id.VSub_DollarName '$SED') <' \'s%['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/][^'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]*'> <Id.Lit_Dollar '$'> <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  <' ;;\n'> <'    '> ($ Id.VSub_DollarName '$objdir') <' )   thisdir=. ;;\n'> <'    esac\n'> <'  fi\n'> <'\n'> 
                  <'  # Try to get the absolute directory name.\n'> <'  absdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'cd '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && pwd'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <absdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <absdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$fast_install'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'  program=lt-\''> ($ Id.VSub_DollarName '$outputname') <'\''> 
                          ($ Id.VSub_DollarName '$exeext') <'\n'> <'  progdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'thisdir/'> ($ Id.VSub_DollarName '$objdir') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'\n'> <'  if test ! -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' ||\n'> <'     { file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -1dt '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/../'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 2>/dev/null | '> 
                          ($ Id.VSub_DollarName '$SED') <' 1q'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'; '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) <'\n'> <'       test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; }; then\n'> <'\n'> 
                          <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <-> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> <'    if test ! -d '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'      '> ($ Id.VSub_DollarName '$MKDIR') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'    else\n'> <'      '> ($ Id.VSub_DollarName '$RM') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'    fi'>
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'\n'> <'    # relink executable if necessary\n'> <'    if test -n '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <relink_command> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'      if relink_command_output='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'eval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'relink_command 2>&1'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'; then :\n'> <'      else\n'> <'\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                          <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <relink_command_output> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' >&2\n'> <'\t'> 
                          ($ Id.VSub_DollarName '$RM') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'\texit 1\n'> <'      fi\n'> <'    fi\n'> <'\n'> <'    '> ($ Id.VSub_DollarName '$MV') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 2>/dev/null ||\n'> <'    { '> 
                          ($ Id.VSub_DollarName '$RM') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <';\n'> <'      '> ($ Id.VSub_DollarName '$MV') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; }\n'> <'    '> 
                          ($ Id.VSub_DollarName '$RM') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'  fi'>
                        )
                      }
                    )
                  ]
                  spids: [27087 27100]
                )
              ]
              else_action: [
                (C {($ Id.VSub_DollarName '$ECHO')} 
                  {
                    (DQ <'  program=\''> ($ Id.VSub_DollarName '$outputname') <'\'\n'> <'  progdir='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> 
                      ($ Id.VSub_DollarName '$objdir') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'>
                    )
                  }
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'\n'> <'  if test -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dllsearchpath'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'    # Add the dll search path components to the executable PATH\n'> 
                          <'    PATH='> ($ Id.VSub_DollarName '$dllsearchpath') <':'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'PATH\n'>
                        )
                      }
                    )
                  ]
                  spids: [27368 27379]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$shlibpath_overrides_runpath'))}
                                )
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$temp_rpath'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'    # Add our own library path to '> 
                          ($ Id.VSub_DollarName '$shlibpath_var') <'\n'> <'    '> ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) ($ Id.VSub_DollarName '$temp_rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                          ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> 
                          <'    # Some systems cannot cope with colon-terminated '> ($ Id.VSub_DollarName '$shlibpath_var') <'\n'> 
                          <'    # The second colon is a workaround for a bug in BeOS R4 sed\n'> <'    '> ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$shlibpath_var') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' | '> ($ Id.VSub_DollarName '$SED') <' \'s/::*'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'//\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'\n'> <'    export '> 
                          ($ Id.VSub_DollarName '$shlibpath_var') <'\n'>
                        )
                      }
                    )
                  ]
                  spids: [27403 27436]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_execute_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'      # Run the actual program with our arguments.\n'> <'      func_exec_program '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}\n'> <'    fi\n'> <'  else\n'> 
                  <'    # The program doesn\'t exist.\n'> <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'0: error: \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'program\' does not exist'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'This script is just a wrapper for '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <program.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'    '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'See the '> 
                  ($ Id.VSub_DollarName '$PACKAGE') <' documentation for more information.'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <' 1>&2\n'> <'    exit 1\n'> <'  fi\n'> <fi>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: func_emit_cwrapperexe_src
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 27604
                      stdin_parts: [
                        <'\n'>
                        <'/* '>
                        ($ Id.VSub_DollarName '$cwrappersource')
                        <' - temporary wrapper executable for '>
                        ($ Id.VSub_DollarName '$objdir')
                        <'/'>
                        ($ Id.VSub_DollarName '$outputname')
                        <'\n'>
                        <'   Generated by '>
                        ($ Id.VSub_DollarName '$PROGRAM')
                        <' (GNU '>
                        ($ Id.VSub_DollarName '$PACKAGE')
                        <') '>
                        ($ Id.VSub_DollarName '$VERSION')
                        <'\n'>
                        <'\n'>
                        <'   The '>
                        ($ Id.VSub_DollarName '$output')
                        <' program cannot be directly executed until all the libtool\n'>
                        <'   libraries that it depends on are installed.\n'>
                        <'\n'>
                        <
'   This wrapper executable should never be moved out of the build directory.\n'
                        >
                        <'   If it is, it will not operate correctly.\n'>
                        <'*/\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 27758
                      stdin_parts: [
                        <'#ifdef _MSC_VER\n'>
                        <'# define _CRT_SECURE_NO_DEPRECATE 1\n'>
                        <'#endif\n'>
                        <'#include <stdio.h>\n'>
                        <'#include <stdlib.h>\n'>
                        <'#ifdef _MSC_VER\n'>
                        <'# include <direct.h>\n'>
                        <'# include <process.h>\n'>
                        <'# include <io.h>\n'>
                        <'#else\n'>
                        <'# include <unistd.h>\n'>
                        <'# include <stdint.h>\n'>
                        <'# ifdef __CYGWIN__\n'>
                        <'#  include <io.h>\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'#include <malloc.h>\n'>
                        <'#include <stdarg.h>\n'>
                        <'#include <assert.h>\n'>
                        <'#include <string.h>\n'>
                        <'#include <ctype.h>\n'>
                        <'#include <errno.h>\n'>
                        <'#include <fcntl.h>\n'>
                        <'#include <sys/stat.h>\n'>
                        <'\n'>
                        <'#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)\n'>
                        <'\n'>
                        <'/* declarations of non-ANSI functions */\n'>
                        <'#if defined __MINGW32__\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'int _putenv (const char *);\n'>
                        <'# endif\n'>
                        <'#elif defined __CYGWIN__\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'char *realpath (const char *, char *);\n'>
                        <'int putenv (char *);\n'>
                        <'int setenv (const char *, const char *, int);\n'>
                        <'# endif\n'>
                        <'/* #elif defined other_platform || defined ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* portability defines, excluding path handling macros */\n'>
                        <'#if defined _MSC_VER\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'# define S_IXUSR _S_IEXEC\n'>
                        <'#elif defined __MINGW32__\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'#elif defined __CYGWIN__\n'>
                        <'# define HAVE_SETENV\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'/* #elif defined other platforms ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#if defined PATH_MAX\n'>
                        <'# define LT_PATHMAX PATH_MAX\n'>
                        <'#elif defined MAXPATHLEN\n'>
                        <'# define LT_PATHMAX MAXPATHLEN\n'>
                        <'#else\n'>
                        <'# define LT_PATHMAX 1024\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef S_IXOTH\n'>
                        <'# define S_IXOTH 0\n'>
                        <'#endif\n'>
                        <'#ifndef S_IXGRP\n'>
                        <'# define S_IXGRP 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* path handling portability macros */\n'>
                        <'#ifndef DIR_SEPARATOR\n'>
                        <'# define DIR_SEPARATOR \'/\'\n'>
                        <'# define PATH_SEPARATOR \':\'\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \\\n'>
                        <'  defined __OS2__\n'>
                        <'# define HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'# ifndef DIR_SEPARATOR_2\n'>
                        <'#  define DIR_SEPARATOR_2 \'\\\\\'\n'>
                        <'# endif\n'>
                        <'# ifndef PATH_SEPARATOR_2\n'>
                        <'#  define PATH_SEPARATOR_2 \';\'\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef DIR_SEPARATOR_2\n'>
                        <'# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)\n'>
                        <'#else /* DIR_SEPARATOR_2 */\n'>
                        <'# define IS_DIR_SEPARATOR(ch) \\\n'>
                        <'\t(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))\n'>
                        <'#endif /* DIR_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef PATH_SEPARATOR_2\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)\n'>
                        <'#else /* PATH_SEPARATOR_2 */\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)\n'>
                        <'#endif /* PATH_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef FOPEN_WB\n'>
                        <'# define FOPEN_WB "w"\n'>
                        <'#endif\n'>
                        <'#ifndef _O_BINARY\n'>
                        <'# define _O_BINARY 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))\n'
                        >
                        <'#define XFREE(stale) do { \\\n'>
                        <'  if (stale) { free (stale); stale = 0; } \\\n'>
                        <'} while (0)\n'>
                        <'\n'>
                        <'#if defined LT_DEBUGWRAPPER\n'>
                        <'static int lt_debug = 1;\n'>
                        <'#else\n'>
                        <'static int lt_debug = 0;\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */\n'
                        >
                        <'\n'>
                        <'void *xmalloc (size_t num);\n'>
                        <'char *xstrdup (const char *string);\n'>
                        <'const char *base_name (const char *name);\n'>
                        <'char *find_executable (const char *wrapper);\n'>
                        <'char *chase_symlinks (const char *pathspec);\n'>
                        <'int make_executable (const char *path);\n'>
                        <'int check_executable (const char *path);\n'>
                        <'char *strendzap (char *str, const char *pat);\n'>
                        <
'void lt_debugprintf (const char *file, int line, const char *fmt, ...);\n'
                        >
                        <'void lt_fatal (const char *file, int line, const char *message, ...);\n'>
                        <'static const char *nonnull (const char *s);\n'>
                        <'static const char *nonempty (const char *s);\n'>
                        <'void lt_setenv (const char *name, const char *value);\n'>
                        <
'char *lt_extend_str (const char *orig_value, const char *add, int to_end);\n'
                        >
                        <'void lt_update_exe_path (const char *name, const char *value);\n'>
                        <'void lt_update_lib_path (const char *name, const char *value);\n'>
                        <'char **prepare_spawn (char **argv);\n'>
                        <'void lt_dump_script (FILE *f);\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 27782
                      stdin_parts: [
                        <'#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)\n'>
                        <'# define externally_visible volatile\n'>
                        <'#else\n'>
                        <
'# define externally_visible __attribute__((externally_visible)) volatile\n'
                        >
                        <'#endif\n'>
                        <'externally_visible const char * MAGIC_EXE = '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$magic_exe')
                        <Id.Right_DoubleQuote '"'>
                        <';\n'>
                        <'const char * LIB_PATH_VARNAME = '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$shlibpath_var')
                        <Id.Right_DoubleQuote '"'>
                        <';\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$shlibpath_overrides_runpath'))}
                                )
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$temp_rpath'))})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_to_host_path>} {(DQ ($ Id.VSub_DollarName '$temp_rpath'))})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_span_id: 27839
                              stdin_parts: [
                                <'const char * LIB_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName '$func_to_host_path_result')
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27785 27818]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(DQ <EOF>)}
                          here_end_span_id: 27852
                          stdin_parts: [<'const char * LIB_PATH_VALUE   = "";\n'>]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dllsearchpath'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_to_host_path>} {(DQ ($ Id.VSub_DollarName '$dllsearchpath') <':'>)})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_span_id: 27896
                              stdin_parts: [
                                <'const char * EXE_PATH_VARNAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <PATH>
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                                <'const char * EXE_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName '$func_to_host_path_result')
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27858 27869]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(DQ <EOF>)}
                          here_end_span_id: 27910
                          stdin_parts: [
                            <'const char * EXE_PATH_VARNAME = "";\n'>
                            <'const char * EXE_PATH_VALUE   = "";\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$fast_install'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_span_id: 27944
                              stdin_parts: [
                                <'const char * TARGET_PROGRAM_NAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <lt->
                                ($ Id.VSub_DollarName '$outputname')
                                <Id.Right_DoubleQuote '"'>
                                <'; /* hopefully, no .exe */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27916 27929]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_span_id: 27960
                          stdin_parts: [
                            <'const char * TARGET_PROGRAM_NAME = '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$outputname')
                            <Id.Right_DoubleQuote '"'>
                            <'; /* hopefully, no .exe */\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28007
                      stdin_parts: [
                        <'\n'>
                        <'#define LTWRAPPER_OPTION_PREFIX         "--lt-"\n'>
                        <'\n'>
                        <'static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;\n'>
                        <
'static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";\n'
                        >
                        <
'static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";\n'
                        >
                        <'\n'>
                        <'int\n'>
                        <'main (int argc, char *argv[])\n'>
                        <'{\n'>
                        <'  char **newargz;\n'>
                        <'  int  newargc;\n'>
                        <'  char *tmp_pathspec;\n'>
                        <'  char *actual_cwrapper_path;\n'>
                        <'  char *actual_cwrapper_name;\n'>
                        <'  char *target_name;\n'>
                        <'  char *lt_argv_zero;\n'>
                        <'  int rval = 127;\n'>
                        <'\n'>
                        <'  int i;\n'>
                        <'\n'>
                        <'  program_name = (char *) xstrdup (base_name (argv[0]));\n'>
                        <'  newargz = XMALLOC (char *, (size_t) argc + 1);\n'>
                        <'\n'>
                        <'  /* very simple arg parsing; don\'t want to rely on getopt\n'>
                        <'   * also, copy all non cwrapper options to newargz, except\n'>
                        <'   * argz[0], which is handled differently\n'>
                        <'   */\n'>
                        <'  newargc=0;\n'>
                        <'  for (i = 1; i < argc; i++)\n'>
                        <'    {\n'>
                        <'      if (STREQ (argv[i], dumpscript_opt))\n'>
                        <'\t{\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                  ]
                  action: [(C {<echo>} {(DQ <'          setmode(1,_O_BINARY);'>)})]
                  spids: [28016 28026 28040 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28082
                      stdin_parts: [
                        <'\t  lt_dump_script (stdout);\n'>
                        <'\t  return 0;\n'>
                        <'\t}\n'>
                        <'      if (STREQ (argv[i], debug_opt))\n'>
                        <'\t{\n'>
                        <'          lt_debug = 1;\n'>
                        <'          continue;\n'>
                        <'\t}\n'>
                        <'      if (STREQ (argv[i], ltwrapper_option_prefix))\n'>
                        <'        {\n'>
                        <
'          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX\n'
                        >
                        <
'             namespace, but it is not one of the ones we know about and\n'
                        >
                        <
'             have already dealt with, above (inluding dump-script), then\n'
                        >
                        <
'             report an error. Otherwise, targets might begin to believe\n'
                        >
                        <
'             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX\n'
                        >
                        <
'             namespace. The first time any user complains about this, we\'ll\n'
                        >
                        <
'             need to make LTWRAPPER_OPTION_PREFIX a configure-time option\n'
                        >
                        <'             or a configure.ac-settable value.\n'>
                        <'           */\n'>
                        <'          lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t    "unrecognized %s option: \'%s\'",\n'>
                        <'                    ltwrapper_option_prefix, argv[i]);\n'>
                        <'        }\n'>
                        <'      /* otherwise ... */\n'>
                        <'      newargz[++newargc] = xstrdup (argv[i]);\n'>
                        <'    }\n'>
                        <'  newargz[++newargc] = NULL;\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 28101
                      stdin_parts: [
                        <'  /* The GNU banner must be the first non-error debug message */\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, '>
                        <Id.Right_DoubleQuote '"'>
                        <'libtool wrapper (GNU '>
                        ($ Id.VSub_DollarName '$PACKAGE')
                        <') '>
                        ($ Id.VSub_DollarName '$VERSION')
                        <Id.Lit_BadBackslash '\\'>
                        <n>
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28147
                      stdin_parts: [
                        <
'  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\\n", argv[0]);\n'
                        >
                        <
'  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\\n", program_name);\n'
                        >
                        <'\n'>
                        <'  tmp_pathspec = find_executable (argv[0]);\n'>
                        <'  if (tmp_pathspec == NULL)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "couldn\'t find %s", argv[0]);\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'                  "(main) found exe (before symlink chase) at: %s\\n",\n'>
                        <'\t\t  tmp_pathspec);\n'>
                        <'\n'>
                        <'  actual_cwrapper_path = chase_symlinks (tmp_pathspec);\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'                  "(main) found exe (after symlink chase) at: %s\\n",\n'>
                        <'\t\t  actual_cwrapper_path);\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'\n'>
                        <'  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));\n'>
                        <'  strendzap (actual_cwrapper_path, actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  /* wrapper name transforms */\n'>
                        <'  strendzap (actual_cwrapper_name, ".exe");\n'>
                        <'  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);\n'>
                        <'  XFREE (actual_cwrapper_name);\n'>
                        <'  actual_cwrapper_name = tmp_pathspec;\n'>
                        <'  tmp_pathspec = 0;\n'>
                        <'\n'>
                        <
'  /* target_name transforms -- use actual target program name; might have lt- prefix */\n'
                        >
                        <'  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));\n'>
                        <'  strendzap (target_name, ".exe");\n'>
                        <'  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);\n'>
                        <'  XFREE (target_name);\n'>
                        <'  target_name = tmp_pathspec;\n'>
                        <'  tmp_pathspec = 0;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(main) libtool target name: %s\\n",\n'>
                        <'\t\t  target_name);\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 28174
                      stdin_parts: [
                        <'  newargz[0] =\n'>
                        <'    XMALLOC (char, (strlen (actual_cwrapper_path) +\n'>
                        <'\t\t    strlen ('>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$objdir')
                        <Id.Right_DoubleQuote '"'>
                        <') + 1 + strlen (actual_cwrapper_name) + 1));\n'>
                        <'  strcpy (newargz[0], actual_cwrapper_path);\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$objdir')
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        <'/'>
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28194
                      stdin_parts: [
                        <'  /* stop here, and copy so we don\'t have to do this twice */\n'>
                        <'  tmp_pathspec = xstrdup (newargz[0]);\n'>
                        <'\n'>
                        <'  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */\n'>
                        <'  strcat (newargz[0], actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  /* DO want the lt- prefix here if it exists, so use target_name */\n'>
                        <'  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'  tmp_pathspec = NULL;\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [{<mingw> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 28227
                              stdin_parts: [
                                <'  {\n'>
                                <'    char* p;\n'>
                                <'    while ((p = strchr (newargz[0], \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'    while ((p = strchr (lt_argv_zero, \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'  }\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [28204 28206 28229 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28264
                      stdin_parts: [
                        <'  XFREE (target_name);\n'>
                        <'  XFREE (actual_cwrapper_path);\n'>
                        <'  XFREE (actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */\n'>
                        <'  lt_setenv ("DUALCASE", "1");  /* for MSK sh */\n'>
                        <'  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must\n'>
                        <
'     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)\n'
                        >
                        <'     because on Windows, both *_VARNAMEs are PATH but uninstalled\n'>
                        <'     libraries must come first. */\n'>
                        <'  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);\n'>
                        <'  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\\n",\n'>
                        <'\t\t  nonnull (lt_argv_zero));\n'>
                        <'  for (i = 0; i < newargc; i++)\n'>
                        <'    {\n'>
                        <'      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\\n",\n'>
                        <'\t\t      i, nonnull (newargz[i]));\n'>
                        <'    }\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [{<mingw> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 28298
                              stdin_parts: [
                                <
'  /* execv doesn\'t actually work on mingw as expected on unix */\n'
                                >
                                <'  newargz = prepare_spawn (newargz);\n'>
                                <
'  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);\n'
                                >
                                <'  if (rval == -1)\n'>
                                <'    {\n'>
                                <'      /* failed to start process */\n'>
                                <'      lt_debugprintf (__FILE__, __LINE__,\n'>
                                <'\t\t      "(main) failed to launch target \\"%s\\": %s\\n",\n'>
                                <'\t\t      lt_argv_zero, nonnull (strerror (errno)));\n'>
                                <'      return 127;\n'>
                                <'    }\n'>
                                <'  return rval;\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [28274 28276 28300 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 28316
                              stdin_parts: [
                                <'  execv (lt_argv_zero, newargz);\n'>
                                <'  return rval; /* =127, but avoids unused variable warning */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [28303 28304 28318 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28724
                      stdin_parts: [
                        <'}\n'>
                        <'\n'>
                        <'void *\n'>
                        <'xmalloc (size_t num)\n'>
                        <'{\n'>
                        <'  void *p = (void *) malloc (num);\n'>
                        <'  if (!p)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "memory exhausted");\n'>
                        <'\n'>
                        <'  return p;\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'xstrdup (const char *string)\n'>
                        <'{\n'>
                        <'  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),\n'>
                        <'\t\t\t  string) : NULL;\n'>
                        <'}\n'>
                        <'\n'>
                        <'const char *\n'>
                        <'base_name (const char *name)\n'>
                        <'{\n'>
                        <'  const char *base;\n'>
                        <'\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'  /* Skip over the disk name in MSDOS pathnames. */\n'>
                        <'  if (isalpha ((unsigned char) name[0]) && name[1] == \':\')\n'>
                        <'    name += 2;\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'  for (base = name; *name; name++)\n'>
                        <'    if (IS_DIR_SEPARATOR (*name))\n'>
                        <'      base = name + 1;\n'>
                        <'  return base;\n'>
                        <'}\n'>
                        <'\n'>
                        <'int\n'>
                        <'check_executable (const char *path)\n'>
                        <'{\n'>
                        <'  struct stat st;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\\n",\n'>
                        <'                  nonempty (path));\n'>
                        <'  if ((!path) || (!*path))\n'>
                        <'    return 0;\n'>
                        <'\n'>
                        <'  if ((stat (path, &st) >= 0)\n'>
                        <'      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))\n'>
                        <'    return 1;\n'>
                        <'  else\n'>
                        <'    return 0;\n'>
                        <'}\n'>
                        <'\n'>
                        <'int\n'>
                        <'make_executable (const char *path)\n'>
                        <'{\n'>
                        <'  int rval = 0;\n'>
                        <'  struct stat st;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\\n",\n'>
                        <'                  nonempty (path));\n'>
                        <'  if ((!path) || (!*path))\n'>
                        <'    return 0;\n'>
                        <'\n'>
                        <'  if (stat (path, &st) >= 0)\n'>
                        <'    {\n'>
                        <'      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);\n'>
                        <'    }\n'>
                        <'  return rval;\n'>
                        <'}\n'>
                        <'\n'>
                        <'/* Searches for the full path of the wrapper.  Returns\n'>
                        <'   newly allocated full path name if found, NULL otherwise\n'>
                        <'   Does not chase symlinks, even on platforms that support them.\n'>
                        <'*/\n'>
                        <'char *\n'>
                        <'find_executable (const char *wrapper)\n'>
                        <'{\n'>
                        <'  int has_slash = 0;\n'>
                        <'  const char *p;\n'>
                        <'  const char *p_next;\n'>
                        <'  /* static buffer for getcwd */\n'>
                        <'  char tmp[LT_PATHMAX + 1];\n'>
                        <'  size_t tmp_len;\n'>
                        <'  char *concat_name;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\\n",\n'>
                        <'                  nonempty (wrapper));\n'>
                        <'\n'>
                        <'  if ((wrapper == NULL) || (*wrapper == \'\\0\'))\n'>
                        <'    return NULL;\n'>
                        <'\n'>
                        <'  /* Absolute path? */\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == \':\')\n'>
                        <'    {\n'>
                        <'      concat_name = xstrdup (wrapper);\n'>
                        <'      if (check_executable (concat_name))\n'>
                        <'\treturn concat_name;\n'>
                        <'      XFREE (concat_name);\n'>
                        <'    }\n'>
                        <'  else\n'>
                        <'    {\n'>
                        <'#endif\n'>
                        <'      if (IS_DIR_SEPARATOR (wrapper[0]))\n'>
                        <'\t{\n'>
                        <'\t  concat_name = xstrdup (wrapper);\n'>
                        <'\t  if (check_executable (concat_name))\n'>
                        <'\t    return concat_name;\n'>
                        <'\t  XFREE (concat_name);\n'>
                        <'\t}\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'    }\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'  for (p = wrapper; *p; p++)\n'>
                        <'    if (*p == \'/\')\n'>
                        <'      {\n'>
                        <'\thas_slash = 1;\n'>
                        <'\tbreak;\n'>
                        <'      }\n'>
                        <'  if (!has_slash)\n'>
                        <'    {\n'>
                        <'      /* no slashes; search PATH */\n'>
                        <'      const char *path = getenv ("PATH");\n'>
                        <'      if (path != NULL)\n'>
                        <'\t{\n'>
                        <'\t  for (p = path; *p; p = p_next)\n'>
                        <'\t    {\n'>
                        <'\t      const char *q;\n'>
                        <'\t      size_t p_len;\n'>
                        <'\t      for (q = p; *q; q++)\n'>
                        <'\t\tif (IS_PATH_SEPARATOR (*q))\n'>
                        <'\t\t  break;\n'>
                        <'\t      p_len = (size_t) (q - p);\n'>
                        <'\t      p_next = (*q == \'\\0\' ? q : q + 1);\n'>
                        <'\t      if (p_len == 0)\n'>
                        <'\t\t{\n'>
                        <'\t\t  /* empty path: current directory */\n'>
                        <'\t\t  if (getcwd (tmp, LT_PATHMAX) == NULL)\n'>
                        <'\t\t    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",\n'>
                        <'                              nonnull (strerror (errno)));\n'>
                        <'\t\t  tmp_len = strlen (tmp);\n'>
                        <'\t\t  concat_name =\n'>
                        <'\t\t    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);\n'>
                        <'\t\t  memcpy (concat_name, tmp, tmp_len);\n'>
                        <'\t\t  concat_name[tmp_len] = \'/\';\n'>
                        <'\t\t  strcpy (concat_name + tmp_len + 1, wrapper);\n'>
                        <'\t\t}\n'>
                        <'\t      else\n'>
                        <'\t\t{\n'>
                        <'\t\t  concat_name =\n'>
                        <'\t\t    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);\n'>
                        <'\t\t  memcpy (concat_name, p, p_len);\n'>
                        <'\t\t  concat_name[p_len] = \'/\';\n'>
                        <'\t\t  strcpy (concat_name + p_len + 1, wrapper);\n'>
                        <'\t\t}\n'>
                        <'\t      if (check_executable (concat_name))\n'>
                        <'\t\treturn concat_name;\n'>
                        <'\t      XFREE (concat_name);\n'>
                        <'\t    }\n'>
                        <'\t}\n'>
                        <'      /* not found in PATH; assume curdir */\n'>
                        <'    }\n'>
                        <'  /* Relative path | not found in path: prepend cwd */\n'>
                        <'  if (getcwd (tmp, LT_PATHMAX) == NULL)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",\n'>
                        <'              nonnull (strerror (errno)));\n'>
                        <'  tmp_len = strlen (tmp);\n'>
                        <'  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);\n'>
                        <'  memcpy (concat_name, tmp, tmp_len);\n'>
                        <'  concat_name[tmp_len] = \'/\';\n'>
                        <'  strcpy (concat_name + tmp_len + 1, wrapper);\n'>
                        <'\n'>
                        <'  if (check_executable (concat_name))\n'>
                        <'    return concat_name;\n'>
                        <'  XFREE (concat_name);\n'>
                        <'  return NULL;\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'chase_symlinks (const char *pathspec)\n'>
                        <'{\n'>
                        <'#ifndef S_ISLNK\n'>
                        <'  return xstrdup (pathspec);\n'>
                        <'#else\n'>
                        <'  char buf[LT_PATHMAX];\n'>
                        <'  struct stat s;\n'>
                        <'  char *tmp_pathspec = xstrdup (pathspec);\n'>
                        <'  char *p;\n'>
                        <'  int has_symlinks = 0;\n'>
                        <'  while (strlen (tmp_pathspec) && !has_symlinks)\n'>
                        <'    {\n'>
                        <'      lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t      "checking path component for symlinks: %s\\n",\n'>
                        <'\t\t      tmp_pathspec);\n'>
                        <'      if (lstat (tmp_pathspec, &s) == 0)\n'>
                        <'\t{\n'>
                        <'\t  if (S_ISLNK (s.st_mode) != 0)\n'>
                        <'\t    {\n'>
                        <'\t      has_symlinks = 1;\n'>
                        <'\t      break;\n'>
                        <'\t    }\n'>
                        <'\n'>
                        <'\t  /* search backwards for last DIR_SEPARATOR */\n'>
                        <'\t  p = tmp_pathspec + strlen (tmp_pathspec) - 1;\n'>
                        <'\t  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))\n'>
                        <'\t    p--;\n'>
                        <'\t  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))\n'>
                        <'\t    {\n'>
                        <'\t      /* no more DIR_SEPARATORS left */\n'>
                        <'\t      break;\n'>
                        <'\t    }\n'>
                        <'\t  *p = \'\\0\';\n'>
                        <'\t}\n'>
                        <'      else\n'>
                        <'\t{\n'>
                        <'\t  lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t    "error accessing file \\"%s\\": %s",\n'>
                        <'\t\t    tmp_pathspec, nonnull (strerror (errno)));\n'>
                        <'\t}\n'>
                        <'    }\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'\n'>
                        <'  if (!has_symlinks)\n'>
                        <'    {\n'>
                        <'      return xstrdup (pathspec);\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  tmp_pathspec = realpath (pathspec, buf);\n'>
                        <'  if (tmp_pathspec == 0)\n'>
                        <'    {\n'>
                        <'      lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t"could not follow symlinks for %s", pathspec);\n'>
                        <'    }\n'>
                        <'  return xstrdup (tmp_pathspec);\n'>
                        <'#endif\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'strendzap (char *str, const char *pat)\n'>
                        <'{\n'>
                        <'  size_t len, patlen;\n'>
                        <'\n'>
                        <'  assert (str != NULL);\n'>
                        <'  assert (pat != NULL);\n'>
                        <'\n'>
                        <'  len = strlen (str);\n'>
                        <'  patlen = strlen (pat);\n'>
                        <'\n'>
                        <'  if (patlen <= len)\n'>
                        <'    {\n'>
                        <'      str += len - patlen;\n'>
                        <'      if (STREQ (str, pat))\n'>
                        <'\t*str = \'\\0\';\n'>
                        <'    }\n'>
                        <'  return str;\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_debugprintf (const char *file, int line, const char *fmt, ...)\n'>
                        <'{\n'>
                        <'  va_list args;\n'>
                        <'  if (lt_debug)\n'>
                        <'    {\n'>
                        <'      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);\n'>
                        <'      va_start (args, fmt);\n'>
                        <'      (void) vfprintf (stderr, fmt, args);\n'>
                        <'      va_end (args);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                        <'static void\n'>
                        <'lt_error_core (int exit_status, const char *file,\n'>
                        <'\t       int line, const char *mode,\n'>
                        <'\t       const char *message, va_list ap)\n'>
                        <'{\n'>
                        <'  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);\n'>
                        <'  vfprintf (stderr, message, ap);\n'>
                        <'  fprintf (stderr, ".\\n");\n'>
                        <'\n'>
                        <'  if (exit_status >= 0)\n'>
                        <'    exit (exit_status);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_fatal (const char *file, int line, const char *message, ...)\n'>
                        <'{\n'>
                        <'  va_list ap;\n'>
                        <'  va_start (ap, message);\n'>
                        <'  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);\n'>
                        <'  va_end (ap);\n'>
                        <'}\n'>
                        <'\n'>
                        <'static const char *\n'>
                        <'nonnull (const char *s)\n'>
                        <'{\n'>
                        <'  return s ? s : "(null)";\n'>
                        <'}\n'>
                        <'\n'>
                        <'static const char *\n'>
                        <'nonempty (const char *s)\n'>
                        <'{\n'>
                        <'  return (s && !*s) ? "(empty)" : nonnull (s);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_setenv (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_setenv) setting \'%s\' to \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'  {\n'>
                        <'#ifdef HAVE_SETENV\n'>
                        <'    /* always make a copy, for consistency with !HAVE_SETENV */\n'>
                        <'    char *str = xstrdup (value);\n'>
                        <'    setenv (name, str, 1);\n'>
                        <'#else\n'>
                        <'    size_t len = strlen (name) + 1 + strlen (value) + 1;\n'>
                        <'    char *str = XMALLOC (char, len);\n'>
                        <'    sprintf (str, "%s=%s", name, value);\n'>
                        <'    if (putenv (str) != EXIT_SUCCESS)\n'>
                        <'      {\n'>
                        <'        XFREE (str);\n'>
                        <'      }\n'>
                        <'#endif\n'>
                        <'  }\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'lt_extend_str (const char *orig_value, const char *add, int to_end)\n'>
                        <'{\n'>
                        <'  char *new_value;\n'>
                        <'  if (orig_value && *orig_value)\n'>
                        <'    {\n'>
                        <'      size_t orig_value_len = strlen (orig_value);\n'>
                        <'      size_t add_len = strlen (add);\n'>
                        <'      new_value = XMALLOC (char, add_len + orig_value_len + 1);\n'>
                        <'      if (to_end)\n'>
                        <'        {\n'>
                        <'          strcpy (new_value, orig_value);\n'>
                        <'          strcpy (new_value + orig_value_len, add);\n'>
                        <'        }\n'>
                        <'      else\n'>
                        <'        {\n'>
                        <'          strcpy (new_value, add);\n'>
                        <'          strcpy (new_value + add_len, orig_value);\n'>
                        <'        }\n'>
                        <'    }\n'>
                        <'  else\n'>
                        <'    {\n'>
                        <'      new_value = xstrdup (add);\n'>
                        <'    }\n'>
                        <'  return new_value;\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_update_exe_path (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_update_exe_path) modifying \'%s\' by prepending \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'\n'>
                        <'  if (name && *name && value && *value)\n'>
                        <'    {\n'>
                        <'      char *new_value = lt_extend_str (getenv (name), value, 0);\n'>
                        <'      /* some systems can\'t cope with a \':\'-terminated path #\' */\n'>
                        <'      size_t len = strlen (new_value);\n'>
                        <'      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))\n'>
                        <'        {\n'>
                        <'          new_value[--len] = \'\\0\';\n'>
                        <'        }\n'>
                        <'      lt_setenv (name, new_value);\n'>
                        <'      XFREE (new_value);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_update_lib_path (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_update_lib_path) modifying \'%s\' by prepending \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'\n'>
                        <'  if (name && *name && value && *value)\n'>
                        <'    {\n'>
                        <'      char *new_value = lt_extend_str (getenv (name), value, 0);\n'>
                        <'      lt_setenv (name, new_value);\n'>
                        <'      XFREE (new_value);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [{<mingw> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 28858
                              stdin_parts: [
                                <'\n'>
                                <'/* Prepares an argument vector before calling spawn().\n'>
                                <
'   Note that spawn() does not by itself call the command interpreter\n'
                                >
                                <'     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :\n'>
                                <
'      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);\n'
                                >
                                <'         GetVersionEx(&v);\n'>
                                <'         v.dwPlatformId == VER_PLATFORM_WIN32_NT;\n'>
                                <'      }) ? "cmd.exe" : "command.com").\n'>
                                <
'   Instead it simply concatenates the arguments, separated by \' \', and calls\n'
                                >
                                <
'   CreateProcess().  We must quote the arguments since Win32 CreateProcess()\n'
                                >
                                <
'   interprets characters like \' \', \'\\t\', \'\\\\\', \'"\' (but not \'<\' and \'>\') in a\n'
                                >
                                <'   special way:\n'>
                                <
'   - Space and tab are interpreted as delimiters. They are not treated as\n'
                                >
                                <
'     delimiters if they are surrounded by double quotes: "...".\n'
                                >
                                <
'   - Unescaped double quotes are removed from the input. Their only effect is\n'
                                >
                                <
'     that within double quotes, space and tab are treated like normal\n'
                                >
                                <'     characters.\n'>
                                <
'   - Backslashes not followed by double quotes are not special.\n'
                                >
                                <'   - But 2*n+1 backslashes followed by a double quote become\n'>
                                <'     n backslashes followed by a double quote (n >= 0):\n'>
                                <'       \\" -> "\n'>
                                <'       \\\\\\" -> \\"\n'>
                                <'       \\\\\\\\\\" -> \\\\"\n'>
                                <' */\n'>
                                <
'#define SHELL_SPECIAL_CHARS "\\"\\\\ \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <
'#define SHELL_SPACE_CHARS " \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <'char **\n'>
                                <'prepare_spawn (char **argv)\n'>
                                <'{\n'>
                                <'  size_t argc;\n'>
                                <'  char **new_argv;\n'>
                                <'  size_t i;\n'>
                                <'\n'>
                                <'  /* Count number of arguments.  */\n'>
                                <'  for (argc = 0; argv[argc] != NULL; argc++)\n'>
                                <'    ;\n'>
                                <'\n'>
                                <'  /* Allocate new argument vector.  */\n'>
                                <'  new_argv = XMALLOC (char *, argc + 1);\n'>
                                <'\n'>
                                <'  /* Put quoted arguments into the new argument vector.  */\n'>
                                <'  for (i = 0; i < argc; i++)\n'>
                                <'    {\n'>
                                <'      const char *string = argv[i];\n'>
                                <'\n'>
                                <'      if (string[0] == \'\\0\')\n'>
                                <'\tnew_argv[i] = xstrdup ("\\"\\"");\n'>
                                <'      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)\n'>
                                <'\t{\n'>
                                <
'\t  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);\n'
                                >
                                <'\t  size_t length;\n'>
                                <'\t  unsigned int backslashes;\n'>
                                <'\t  const char *s;\n'>
                                <'\t  char *quoted_string;\n'>
                                <'\t  char *p;\n'>
                                <'\n'>
                                <'\t  length = 0;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length++;\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\tlength += backslashes + 1;\n'>
                                <'\t      length++;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length += backslashes + 1;\n'>
                                <'\n'>
                                <'\t  quoted_string = XMALLOC (char, length + 1);\n'>
                                <'\n'>
                                <'\t  p = quoted_string;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    *p++ = \'"\';\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\t{\n'>
                                <'\t\t  unsigned int j;\n'>
                                <'\t\t  for (j = backslashes + 1; j > 0; j--)\n'>
                                <'\t\t    *p++ = \'\\\\\';\n'>
                                <'\t\t}\n'>
                                <'\t      *p++ = c;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    {\n'>
                                <'\t      unsigned int j;\n'>
                                <'\t      for (j = backslashes; j > 0; j--)\n'>
                                <'\t\t*p++ = \'\\\\\';\n'>
                                <'\t      *p++ = \'"\';\n'>
                                <'\t    }\n'>
                                <'\t  *p = \'\\0\';\n'>
                                <'\n'>
                                <'\t  new_argv[i] = quoted_string;\n'>
                                <'\t}\n'>
                                <'      else\n'>
                                <'\tnew_argv[i] = (char *) string;\n'>
                                <'    }\n'>
                                <'  new_argv[argc] = NULL;\n'>
                                <'\n'>
                                <'  return new_argv;\n'>
                                <'}\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [28733 28735 28860 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28876
                      stdin_parts: [<'void lt_dump_script (FILE* f)\n'> <'{\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Pipeline
              children: [
                (C {<func_emit_wrapper>} {<yes>})
                (C {($ Id.VSub_DollarName '$SED')} {<-n>} {<-e>} 
                  {
                    (SQ <'\n'> <'s/^\\(.\\{79\\}\\)\\(..*\\)/\\1\\\n'> <'\\2/\n'> <'h\n'> 
                      <'s/\\([\\\\"]\\)/\\\\\\1/g\n'> <'s/$/\\\\n/\n'> <'s/\\([^\\n]*\\).*/  fputs ("\\1", f);/p\n'> <'g\n'> <D>
                    )
                  }
                )
              ]
              negated: F
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 28912
                      stdin_parts: [<'}\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_win32_import_lib_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            words: [
                              {<eval>}
                              {($ Id.VSub_DollarName '$file_magic_cmd')}
                              {(DQ ($ Id.VSub_Number '$1'))}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                          (C {($ Id.VSub_DollarName '$SED')} {<-e>} {<10q>})
                        ]
                        negated: F
                      )
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <Id.KW_Import import> <Id.Lit_Star '*'>}]
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [28970 28973 28977 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<false>})]
                  spids: [28980 28981 28985 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_suncc_cstd_abi
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$compile_command') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> (DQ <' -compat=g '>) <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                      <-std> <Id.Lit_Equals '='> <c> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <Id.Lit_LBracket '['> <0-9> 
                      <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_Star '*'> (DQ <' -library=stdcxx4 '>) <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> (DQ <' -library=stlport4 '>) <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suncc_use_cstd_abi)
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [29064]
                        )
                      ]
                    )
                  ]
                  spids: [29028 29061 29068 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suncc_use_cstd_abi)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [29075]
                        )
                      ]
                    )
                  ]
                  spids: [29071 29072 29079 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mode_link
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:allow_undefined)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [29188]
                        )
                      ]
                    )
                  ]
                  spids: [29109 29144 29192 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:allow_undefined)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [29199]
                        )
                      ]
                    )
                  ]
                  spids: [29195 29196 29203 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_args)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [29209]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:base_compile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt') <' '> ($ Id.VSub_At '$@'))}
                  spids: [29213]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_command)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [29221]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_command)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [29225]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29230]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29233]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_shlibpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29236]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_shlibpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29239]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:convenience)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29242]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:old_convenience)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29245]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29248]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:old_deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29251]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compiler_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29254]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:linker_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29257]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29260]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lib_search_path)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
                  spids: [29263]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29271]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:new_inherited_linker_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29274]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:avoid_version)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29278]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:bindir)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29282]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlfiles)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29285]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlprefiles)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29288]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlself)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29291]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_dynamic)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29295]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_symbols)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29299]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_symbols_regex)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29302]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:generated)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29305]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobjs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29308]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ltlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29311]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:module)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29314]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:no_install)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29318]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:objs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29322]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:os2dllname)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29325]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:non_pic_objects)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29328]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:precious_files_regex)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29331]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29334]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:preload)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [29338]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prev)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29342]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prevarg)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29345]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:release)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29348]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29351]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:xrpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29354]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:perm_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29357]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:temp_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29360]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:thread_safe)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29363]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:vinfo)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29367]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:vinfo_number)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [29370]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:weak_libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [29374]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:single_module)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$wl') <-single_module>}
                  spids: [29377]
                )
              ]
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName '$base_compile')})
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<yes>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                )
                                (C {<func_fatal_configuration>} {(DQ <'cannot build a shared library'>)})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [29433]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [29407 29408 29440 -1]
                        )
                        (case_arm
                          pat_list: [{<-all-static>} {<-static>} {<-static-libtool-libs>}]
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$arg')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-all-static>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$build_libtool_libs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$link_static_flag'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  <
'complete static linking is impossible in this configuration'
                                                  >
                                                )
                                              }
                                            )
                                          ]
                                          spids: [29466 29489]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$link_static_flag')
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [29516]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29502 29513]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [29523]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29462 29463 29527 -1]
                                )
                                (case_arm
                                  pat_list: [{<-static>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pic_flag'))}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$link_static_flag'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [29558]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29534 29555]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<built>}
                                          spids: [29565]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29530 29531 29569 -1]
                                )
                                (case_arm
                                  pat_list: [{<-static-libtool-libs>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pic_flag'))}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$link_static_flag'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [29600]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29576 29597]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [29607]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29572 29573 29611 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [29617]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [29621]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [29443 29452 29628 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_archive_from_new_cmds'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:build_old_libs)
                      op: assign_op.Equal
                      rhs: {<yes>}
                      spids: [29652]
                    )
                  ]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} {<0>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [29677]
                        )
                      ]
                    )
                    (C {<shift>})
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:qarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_unquoted_result')}
                          spids: [29691]
                        )
                      ]
                    )
                    (C {<func_append>} {<libtool_args>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prev'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$prev')}
                              arms: [
                                (case_arm
                                  pat_list: [{<output>}]
                                  action: [
                                    (C {<func_append>} {<compile_command>} {(DQ <' @OUTPUT@'>)})
                                    (C {<func_append>} {<finalize_command>} {(DQ <' @OUTPUT@'>)})
                                  ]
                                  spids: [29731 29732 29753 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$prev')}
                              arms: [
                                (case_arm
                                  pat_list: [{<bindir>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:bindir)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [29771]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [29775]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [29767 29768 29781 -1]
                                )
                                (case_arm
                                  pat_list: [{<dlfiles>} {<dlprefiles>}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$preload')})
                                        (BraceGroup
                                          children: [
                                            (C {<func_append>} {<compile_command>} {(DQ <' @SYMFILE@'>)})
                                            (C {<func_append>} {<finalize_command>} {(DQ <' @SYMFILE@'>)})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:preload)
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                  spids: [29819]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.la>}
                                            {<Id.Lit_Star '*'> <.lo>}
                                          ]
                                          spids: [29833 29840 29842 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<force>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                              {(DQ ($ Id.VSub_DollarName '$dlself'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<needless>}
                                                          spids: [29868]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:export_dynamic)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [29872]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29852 29865]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [29879]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [29848 29849 29885 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<self>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<dlprefiles>} 
                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [29908]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29892 29905]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<dlfiles>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                                )
                                                                (C {<test>} {<yes>} 
                                                                  {<Id.KW_Bang '!'> 
                                                                    <Id.Lit_Equals '='>
                                                                  } {(DQ ($ Id.VSub_DollarName '$dlopen_self'))}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [29941]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29912 29938]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:dlself)
                                                      op: assign_op.Equal
                                                      rhs: {<needless>}
                                                      spids: [29948]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:export_dynamic)
                                                      op: assign_op.Equal
                                                      rhs: {<yes>}
                                                      spids: [29952]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [29959]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [29888 29889 29965 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<dlfiles>} 
                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<dlfiles>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                                    )
                                                  ]
                                                  spids: [29972 29985]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_append>} {<dlprefiles>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [30014]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [29968 29969 30020 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29784 29787 30026 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [30033]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'symbol file \''> ($ Id.VSub_DollarName '$arg') 
                                              <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30058]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30029 30030 30064 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols_regex)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [30071]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30075]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30067 30068 30081 -1]
                                )
                                (case_arm
                                  pat_list: [{<framework>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_DollarName '$deplibs') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$qarg') 
                                                        <'.ltframework '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [30113 30120 30122 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<deplibs>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$qarg') 
                                                          <.ltframework>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [30125 30126 30142 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30095 30100 30148 -1]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30154]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30084 30085 30160 -1]
                                )
                                (case_arm
                                  pat_list: [{<inst_prefix>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [30167]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30171]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30163 30164 30177 -1]
                                )
                                (case_arm
                                  pat_list: [{<mllvm>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30192]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30180 30181 30198 -1]
                                )
                                (case_arm
                                  pat_list: [{<objectlist>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-f>} 
                                                      {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:save_arg)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                                  spids: [30219]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:moreargs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [30223]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: fil
                                              iter_words: [
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (C {<cat>} 
                                                        {(DQ ($ Id.VSub_DollarName '$save_arg'))}
                                                      )
                                                  )
                                                }
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:arg)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$fil')}
                                                          spids: [30249]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<func_lalib_unsafe_p>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$arg'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [30274]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: non_pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [30277]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_source>} 
                                                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [
Id.Op_DPipe
Id.Op_DPipe
Id.Op_DAmp
                                                                              ]
                                                                              children: [
                                                                                (C {<test>} {<-z>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$pic_object'
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                                (C {<test>} {<-z>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$non_pic_object'
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                                (C {<test>} {<none>} 
                                                                                  {
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  } {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                                                )
                                                                                (C {<test>} {<none>} 
                                                                                  {
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  } {(DQ ($ Id.VSub_DollarName '$non_pic_object'))}
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C {<func_fatal_error>} 
                                                                      {
                                                                        (DQ 
                                                                          <
'cannot find name of object for \''
                                                                          > ($ Id.VSub_DollarName '$arg') <'\''>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [30293 30341]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_dirname>} 
                                                              {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:xdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                      )
                                                                    }
                                                                  spids: [30375]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<none>} 
                                                                              {<Id.KW_Bang '!'> 
                                                                                <Id.Lit_Equals '='>
                                                                              } {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$xdir'
                                                                              ) ($ Id.VSub_DollarName '$pic_object')
                                                                            }
                                                                          spids: [30401]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {<dlfiles>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.AndOr
                                                                                              ops: [
Id.Op_DAmp
                                                                                              ]
                                                                                              children: [
                                                                                                (C 
                                                                                                  {
                                                                                                    <
test
                                                                                                    >
                                                                                                  } {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                                                                                )
                                                                                                (C 
                                                                                                  {
                                                                                                    <
test
                                                                                                    >
                                                                                                  } {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dlopen_support'))}
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (C {<func_append>} 
                                                                                      {<dlfiles>} {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
prev
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (word.Empty)
                                                                                          spids: [
30461
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [30423 30448]
                                                                                )
                                                                              ]
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: prev
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          <
dlprefiles
                                                                                          >
                                                                                        }
                                                                                      spids: [30474]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [30407 30420]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {<dlprefiles>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (C {<func_append>} 
                                                                              {<dlprefiles>} {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: prev
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (word.Empty)
                                                                                  spids: [30519]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [30489 30502]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<func_append>} {<libobjs>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
'$pic_object'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$pic_object'
                                                                              )
                                                                            }
                                                                          spids: [30540]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [30380 30394]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<none>} 
                                                                              {<Id.KW_Bang '!'> 
                                                                                <Id.Lit_Equals '='>
                                                                              } {(DQ ($ Id.VSub_DollarName '$non_pic_object'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: non_pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$xdir'
                                                                              ) ($ Id.VSub_DollarName '$non_pic_object')
                                                                            }
                                                                          spids: [30573]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<func_append>} 
                                                                      {<non_pic_objects>} {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (command.AndOr
                                                                                      ops: [
Id.Op_DPipe
                                                                                      ]
                                                                                      children: [
                                                                                        (C {<test>} 
                                                                                          {<-z>} {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                                                        )
                                                                                        (C {<test>} 
                                                                                          {<none>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: arg
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$non_pic_object'
                                                                                      )
                                                                                    }
                                                                                  spids: [30619]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [30593 30616]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [30552 30566]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$pic_object'
                                                                          )
                                                                        }
                                                                      spids: [30637]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$non_pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30262 30271]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$opt_dry_run'
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [
                                                                (C {<func_dirname>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: xdir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                          )
                                                                        }
                                                                      spids: [30687]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_lo2o>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$xdir'
                                                                          ) ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$func_lo2o_result')
                                                                        }
                                                                      spids: [30699]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$xdir'
                                                                          ) ($ Id.VSub_DollarName '$func_lo2o_result')
                                                                        }
                                                                      spids: [30706]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_append>} {<libobjs>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$non_pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [30661 30666]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<func_fatal_error>} 
                                                              {
                                                                (DQ <'\''> 
                                                                  ($ Id.VSub_DollarName '$arg') <'\' is not a valid libtool object'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [30205 30216]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'link input file \''> ($ Id.VSub_DollarName '$arg') 
                                              <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_arg')}
                                          spids: [30767]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30771]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30201 30202 30777 -1]
                                )
                                (case_arm
                                  pat_list: [{<os2dllname>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:os2dllname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [30784]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30788]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30780 30781 30794 -1]
                                )
                                (case_arm
                                  pat_list: [{<precious_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:precious_files_regex)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [30801]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30805]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30797 30798 30811 -1]
                                )
                                (case_arm
                                  pat_list: [{<release>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:release)
                                          op: assign_op.Equal
                                          rhs: {<-> ($ Id.VSub_DollarName '$arg')}
                                          spids: [30818]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30823]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30814 30815 30829 -1]
                                )
                                (case_arm
                                  pat_list: [{<rpath>} {<xrpath>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\\'>
                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                              <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [30851 30868 30870 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {(DQ <'only absolute run-paths are allowed'>)}
                                            )
                                          ]
                                          spids: [30873 30874 30884 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<rpath>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_DollarName '$rpath') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [30916 30923 30925 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<rpath>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                                    )
                                                  ]
                                                  spids: [30928 30929 30940 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30890 30903]
                                        )
                                      ]
                                      else_action: [
                                        (command.Case
                                          to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                                          arms: [
                                            (case_arm
                                              pat_list: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                              spids: [30959 30966 30968 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<Id.Lit_Star '*'>}]
                                              action: [
                                                (C {<func_append>} {<xrpath>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                              ]
                                              spids: [30971 30972 30983 -1]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [30992]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [30832 30837 30998 -1]
                                )
                                (case_arm
                                  pat_list: [{<shrext>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:shrext_cmds)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$arg')}
                                          spids: [31005]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31009]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31001 31002 31015 -1]
                                )
                                (case_arm
                                  pat_list: [{<weak>}]
                                  action: [
                                    (C {<func_append>} {<weak_libs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31032]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31018 31019 31038 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcclinker>}]
                                  action: [
                                    (C {<func_append>} {<linker_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (C {<func_append>} {<compiler_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31065]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<compile_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31041 31042 31091 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcompiler>}]
                                  action: [
                                    (C {<func_append>} {<compiler_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31108]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<compile_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31094 31095 31134 -1]
                                )
                                (case_arm
                                  pat_list: [{<xlinker>}]
                                  action: [
                                    (C {<func_append>} {<linker_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$qarg'))}
                                    )
                                    (C {<func_append>} {<compiler_flags>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$wl') 
                                          ($ Id.VSub_DollarName '$qarg')
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31162]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<compile_command>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$wl') 
                                          ($ Id.VSub_DollarName '$qarg')
                                        )
                                      }
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$wl') 
                                          ($ Id.VSub_DollarName '$qarg')
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31137 31138 31190 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$prev') <'='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <arg> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [31209]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [31193 31194 31215 -1]
                                )
                              ]
                            )
                          ]
                          spids: [29710 29721]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:prevarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$arg')}
                          spids: [31228]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-all-static>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$link_static_flag'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<compile_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$link_static_flag'))}
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$link_static_flag'))}
                                    )
                                  ]
                                  spids: [31244 31255]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31240 31241 31288 -1]
                        )
                        (case_arm
                          pat_list: [{<-allow-undefined>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ 
                                  <
'\'-allow-undefined\' must not be used because it is the default'
                                  >
                                )
                              }
                            )
                          ]
                          spids: [31292 31293 31307 -1]
                        )
                        (case_arm
                          pat_list: [{<-avoid-version>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:avoid_version)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [31315]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31311 31312 31322 -1]
                        )
                        (case_arm
                          pat_list: [{<-bindir>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<bindir>}
                                  spids: [31330]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31326 31327 31337 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlfiles>}
                                  spids: [31345]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31341 31342 31352 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlpreopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlprefiles>}
                                  spids: [31360]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31356 31357 31367 -1]
                        )
                        (case_arm
                          pat_list: [{<-export-dynamic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:export_dynamic)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [31375]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31371 31372 31382 -1]
                        )
                        (case_arm
                          pat_list: [{<-export-symbols>} {<-export-symbols-regex>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$export_symbols_regex')
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ 
                                          <
'more than one -exported-symbols argument is not allowed'
                                          >
                                        )
                                      }
                                    )
                                  ]
                                  spids: [31394 31415]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<X-export-symbols>} {<Id.Lit_Equals '='>} 
                                              {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: {<expsyms>}
                                          spids: [31445]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31428 31442]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:prev)
                                      op: assign_op.Equal
                                      rhs: {<expsyms_regex>}
                                      spids: [31452]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31386 31391 31462 -1]
                        )
                        (case_arm
                          pat_list: [{<-framework>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<framework>}
                                  spids: [31470]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31466 31467 31477 -1]
                        )
                        (case_arm
                          pat_list: [{<-inst-prefix-dir>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<inst_prefix>}
                                  spids: [31485]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31481 31482 31492 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-L> <Id.Lit_LBracket '['> <A-Z> <Id.Lit_RBracket ']'> 
                              <Id.Lit_LBracket '['> <A-Z> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.Case
                              to_match: 
                                {($ Id.VSub_DollarName '$with_gcc') <'/'> 
                                  ($ Id.VSub_DollarName '$host')
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<'no/'> <Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-irix> 
                                      <Id.Lit_Star '*'>
                                    }
                                    {<'/'> <Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-irix> 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (C {<func_append>} {<compile_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                  ]
                                  spids: [31526 31541 31564 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31504 31514 31573 -1]
                        )
                        (case_arm
                          pat_list: [{<-L> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(DQ <-L>)} {(SQ )} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} 
                                                      {<0>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'require no space between \'-L\' and \''> 
                                                  ($ Id.VSub_Number '$1') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [31610 31623]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} {(DQ <'need path for \'-L\' option'>)})
                                      ]
                                    )
                                  ]
                                  spids: [31596 31607]
                                )
                              ]
                            )
                            (C {<func_resolve_sysroot>} 
                              {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
                                  spids: [31658]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$dir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [31673 31690 31692 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:absdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DAmp]
                                                    children: [
                                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                                      (C {<pwd>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [31699]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$absdir'))})
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'cannot determine absolute directory name of \''> 
                                              ($ Id.VSub_DollarName '$dir') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dir)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$absdir')}
                                          spids: [31736]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31695 31696 31740 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$deplibs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [31756 31773 31780 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$dir')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\\'>
                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                              <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (C {<func_append>} {<deplibs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          ]
                                          spids: [31798 31820 31831 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<deplibs>} 
                                              {(DQ <' -L'> ($ Id.VSub_DollarName '$dir'))}
                                            )
                                          ]
                                          spids: [31834 31835 31846 -1]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<lib_search_path>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$dir'))}
                                    )
                                  ]
                                  spids: [31783 31784 31862 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:testbindir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ ($ Id.VSub_DollarName '$dir'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [31913]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$dir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [31942 31949 31951 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dir')}
                                                  spids: [31958]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [31954 31956 31960 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<dllsearchpath>} 
                                              {(DQ <':'> ($ Id.VSub_DollarName '$dir'))}
                                            )
                                          ]
                                          spids: [31963 31964 31974 -1]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$testbindir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [31989 31996 31998 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$testbindir')}
                                                  spids: [32005]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32001 32003 32007 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<dllsearchpath>} 
                                              {(DQ <':'> ($ Id.VSub_DollarName '$testbindir'))}
                                            )
                                          ]
                                          spids: [32010 32011 32021 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31875 31910 32027 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [31577 31579 32036 -1]
                        )
                        (case_arm
                          pat_list: [{<-l> <Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<X-lc>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                                (C {<test>} {<X-lm>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-beos> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [32082 32125 32135 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<X-lc>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32138 32143 32166 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-bitrig> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<X-lc>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32169 32198 32221 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                              <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_append>} {<deplibs>} {(DQ <' System.ltframework'>)})
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [32224 32239 32258 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco3.2v5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco5v6> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<X-lc>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32261 32274 32297 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv4.2uw2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-unixware> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-OpenUNIX> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<X-lc>} {<Id.Lit_Equals '='>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32300 32329 32352 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32045 32072]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<X-lc_r>} {<Id.Lit_Equals '='>} 
                                              {(DQ <X> ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-bitrig> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [32382 32411 32421 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32358 32372]
                                )
                              ]
                            )
                            (C {<func_append>} {<deplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32040 32042 32443 -1]
                        )
                        (case_arm
                          pat_list: [{<-mllvm>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<mllvm>}
                                  spids: [32451]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32447 32448 32458 -1]
                        )
                        (case_arm
                          pat_list: [{<-module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:module)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [32466]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32462 32463 32473 -1]
                        )
                        (case_arm
                          pat_list: [{<-model>} {<-arch>} {<-isysroot>} {<--sysroot>}]
                          action: [
                            (C {<func_append>} {<compiler_flags>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [32529]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32489 32496 32536 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-mt>}
                            {<-mthreads>}
                            {<-kthread>}
                            {<-Kthread>}
                            {<-pthread>}
                            {<-pthreads>}
                            {<--thread-safe>}
                            {<-threads>}
                            {<-fopenmp>}
                            {<-openmp>}
                            {<-mp>}
                            {<-xopenmp>}
                            {<-omp>}
                            {<-qsmp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_append>} {<compiler_flags>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.Case
                              to_match: 
                                {(DQ ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [32615 32622 32624 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<new_inherited_linker_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                  ]
                                  spids: [32627 32629 32640 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32540 32572 32649 -1]
                        )
                        (case_arm
                          pat_list: [{<-multi_module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:single_module)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$wl') <-multi_module>}
                                  spids: [32657]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32653 32654 32665 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-fast-install>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:fast_install)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [32673]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32669 32670 32680 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-install>}]
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (C {<func_warning>} 
                                      {
                                        (DQ <'\'-no-install\' is ignored for '> 
                                          ($ Id.VSub_DollarName '$host')
                                        )
                                      }
                                    )
                                    (C {<func_warning>} {(DQ <'assuming \'-no-fast-install\' instead'>)})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:fast_install)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [32764]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32695 32738 32768 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:no_install)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [32774]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32771 32772 32777 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32684 32685 32786 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-undefined>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:allow_undefined)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [32794]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32790 32791 32801 -1]
                        )
                        (case_arm
                          pat_list: [{<-objectlist>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<objectlist>}
                                  spids: [32809]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32805 32806 32816 -1]
                        )
                        (case_arm
                          pat_list: [{<-os2dllname>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<os2dllname>}
                                  spids: [32824]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32820 32821 32831 -1]
                        )
                        (case_arm
                          pat_list: [{<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<output>}
                                  spids: [32838]
                                )
                              ]
                            )
                          ]
                          spids: [32835 32836 32841 -1]
                        )
                        (case_arm
                          pat_list: [{<-precious-files-regex>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<precious_regex>}
                                  spids: [32849]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32845 32846 32856 -1]
                        )
                        (case_arm
                          pat_list: [{<-release>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<release>}
                                  spids: [32864]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32860 32861 32871 -1]
                        )
                        (case_arm
                          pat_list: [{<-rpath>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<rpath>}
                                  spids: [32879]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32875 32876 32886 -1]
                        )
                        (case_arm
                          pat_list: [{<-R>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xrpath>}
                                  spids: [32894]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32890 32891 32901 -1]
                        )
                        (case_arm
                          pat_list: [{<-R> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [32924]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$dir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [32939 32956 32958 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_stripname>} {(SQ <'='>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$dir'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$lt_sysroot') 
                                              ($ Id.VSub_DollarName '$func_stripname_result')
                                            }
                                          spids: [32980]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32961 32963 32985 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {(DQ <'only absolute run-paths are allowed'>)}
                                    )
                                  ]
                                  spids: [32988 32989 32999 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [33015 33022 33024 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<xrpath>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$dir'))}
                                    )
                                  ]
                                  spids: [33027 33028 33039 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [32905 32907 33048 -1]
                        )
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [33052 33053 33063 -1]
                        )
                        (case_arm
                          pat_list: [{<-shrext>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<shrext>}
                                  spids: [33071]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33067 33068 33078 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>} {<-static-libtool-libs>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [33082 33087 33113 -1]
                        )
                        (case_arm
                          pat_list: [{<-thread-safe>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:thread_safe)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [33121]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33117 33118 33128 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-info>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [33136]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33132 33133 33143 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-number>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [33151]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:vinfo_number)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [33155]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33147 33148 33162 -1]
                        )
                        (case_arm
                          pat_list: [{<-weak>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<weak>}
                                  spids: [33170]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33166 33167 33177 -1]
                        )
                        (case_arm
                          pat_list: [{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <'-Wc,'>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [33201]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [33205]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$IFS')}
                                      spids: [33208]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Comma ','>}
                                  spids: [33212]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: flag
                              iter_words: [{($ Id.VSub_DollarName '$args')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                          spids: [33228]
                                        )
                                      ]
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$flag'))})
                                    (C {<func_append>} {<arg>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))
                                      }
                                    )
                                    (C {<func_append>} {<compiler_flags>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))
                                      }
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                  spids: [33262]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [33280]
                                )
                              ]
                            )
                          ]
                          spids: [33181 33184 33284 -1]
                        )
                        (case_arm
                          pat_list: [{<-Wl> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <'-Wl,'>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [33308]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [33312]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$IFS')}
                                      spids: [33315]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Comma ','>}
                                  spids: [33319]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: flag
                              iter_words: [{($ Id.VSub_DollarName '$args')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                          spids: [33335]
                                        )
                                      ]
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$flag'))})
                                    (C {<func_append>} {<arg>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$wl') 
                                          ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                        )
                                      }
                                    )
                                    (C {<func_append>} {<compiler_flags>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$wl') 
                                          ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                        )
                                      }
                                    )
                                    (C {<func_append>} {<linker_flags>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))
                                      }
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                  spids: [33381]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [33399]
                                )
                              ]
                            )
                          ]
                          spids: [33288 33291 33403 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xcompiler>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [33411]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33407 33408 33418 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xlinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xlinker>}
                                  spids: [33426]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33422 33423 33433 -1]
                        )
                        (case_arm
                          pat_list: [{<-XCClinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcclinker>}
                                  spids: [33441]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33437 33438 33448 -1]
                        )
                        (case_arm
                          pat_list: [{<-msg_> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                                  spids: [33468]
                                )
                              ]
                            )
                          ]
                          spids: [33456 33458 33472 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-64>}
                            {<-mips> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                            {<-r> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                              <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                            {<-xarch> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<-xtarget> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<Id.Lit_Other '+'> <DA> <Id.Lit_Star '*'>}
                            {<Id.Lit_Other '+'> <DD> <Id.Lit_Star '*'>}
                            {<-q> <Id.Lit_Star '*'>}
                            {<-m> <Id.Lit_Star '*'>}
                            {<-t> <Id.Lit_LBracket '['> <45> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                            {<-txscale> <Id.Lit_Star '*'>}
                            {<-p>}
                            {<-pg>}
                            {<--coverage>}
                            {<-fprofile-> <Id.Lit_Star '*'>}
                            {<-F> <Id.Lit_Star '*'>}
                            {<Id.Lit_At '@'> <Id.Lit_Star '*'>}
                            {<-tp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<--sysroot> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<-O> <Id.Lit_Star '*'>}
                            {<-g> <Id.Lit_Star '*'>}
                            {<-flto> <Id.Lit_Star '*'>}
                            {<-fwhopr> <Id.Lit_Star '*'>}
                            {<-fuse-linker-plugin>}
                            {<-fstack-protector> <Id.Lit_Star '*'>}
                            {<-stdlib> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<-specs> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                            {<-fsanitize> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                                  spids: [33661]
                                )
                              ]
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<compiler_flags>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [33544 33651 33698 -1]
                        )
                        (case_arm
                          pat_list: [{<-Z> <Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<os2>} {<Id.Lit_Equals '='>} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (C {<expr>} {($ Id.VSub_DollarName '$host')} 
                                                        {<Id.Lit_Colon ':'>} {(SQ <'.*\\(os2\\)'>)}
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [33743]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<compile_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (C {<func_append>} {<finalize_command>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<-Zlinker>} {<-Zstack>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: {<xcompiler>}
                                                  spids: [33786]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [33778 33783 33790 -1]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [33707 33736]
                                )
                              ]
                              else_action: [
                                (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:arg)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                                      spids: [33813]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [33702 33704 33820 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>} {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                                  spids: [33845]
                                )
                              ]
                            )
                          ]
                          spids: [33828 33835 33849 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}]
                          action: [
                            (C {<func_append>} {<objs>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                          ]
                          spids: [33853 33856 33873 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_lalib_unsafe_p>} 
                                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:pic_object)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [33903]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:non_pic_object)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [33906]
                                        )
                                      ]
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$non_pic_object')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<none>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                        )
                                                        (C {<test>} {<none>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$non_pic_object')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'cannot find name of object for \''> 
                                                  ($ Id.VSub_DollarName '$arg') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [33922 33970]
                                        )
                                      ]
                                    )
                                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:xdir)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                          spids: [34004]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<none>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                        )
                                        (BraceGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:pic_object)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$xdir') 
                                                      ($ Id.VSub_DollarName '$pic_object')
                                                    }
                                                  spids: [34028]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<dlfiles>} 
                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DAmp]
                                                                      children: [
                                                                        (C {<test>} {<yes>} 
                                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                                                        )
                                                                        (C {<test>} {<yes>} 
                                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dlopen_support'))}
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<func_append>} {<dlfiles>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$pic_object')
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [34088]
                                                                )
                                                              ]
                                                            )
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [34050 34075]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:prev)
                                                              op: assign_op.Equal
                                                              rhs: {<dlprefiles>}
                                                              spids: [34101]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34034 34047]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<dlprefiles>} 
                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$prev'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<dlprefiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$pic_object'))
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:prev)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [34146]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34116 34129]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<libobjs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:arg)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$pic_object')}
                                                  spids: [34167]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<none>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$non_pic_object'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:non_pic_object)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$xdir') 
                                                      ($ Id.VSub_DollarName '$non_pic_object')
                                                    }
                                                  spids: [34200]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<non_pic_objects>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<test>} {<none>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:arg)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName '$non_pic_object')
                                                            }
                                                          spids: [34246]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34220 34243]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [34179 34193]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:non_pic_object)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$pic_object')}
                                              spids: [34264]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [33891 33900]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$arg'))} 
                                          {(DQ <'/'>)} {(DQ )}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:xdir)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                              spids: [34314]
                                            )
                                          ]
                                        )
                                        (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:pic_object)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$xdir') 
                                                  ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$func_lo2o_result')
                                                }
                                              spids: [34326]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:non_pic_object)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$xdir') 
                                                  ($ Id.VSub_DollarName '$func_lo2o_result')
                                                }
                                              spids: [34333]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<libobjs>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                        )
                                      ]
                                      spids: [34288 34293]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ <'\''> ($ Id.VSub_DollarName '$arg') 
                                          <'\' is not a valid libtool object'>
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [33877 33879 34376 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                          action: [
                            (C {<func_append>} {<deplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                            (C {<func_append>} {<old_deplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [34380 34383 34413 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (C {<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<dlfiles>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$prev'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<dlfiles>} 
                                      {
                                        (DQ <' '> 
                                          ($ Id.VSub_DollarName '$func_resolve_sysroot_result')
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [34464]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34434 34447]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<dlprefiles>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$prev'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<dlprefiles>} 
                                      {
                                        (DQ <' '> 
                                          ($ Id.VSub_DollarName '$func_resolve_sysroot_result')
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [34497]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34467 34480]
                                )
                              ]
                              else_action: [
                                (C {<func_append>} {<deplibs>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$func_resolve_sysroot_result'))}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [34417 34419 34519 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                                  spids: [34546]
                                )
                              ]
                            )
                          ]
                          spids: [34527 34528 34550 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                          ]
                          spids: [34564 34575]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prev'))})
                (C {<func_fatal_help>} 
                  {
                    (DQ <'the \''> ($ Id.VSub_DollarName '$prevarg') <'\' option requires an argument'>)
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$export_dynamic'))}
                                )
                                (C {<test>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName '$export_dynamic_flag_spec'))}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'arg='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                        ) ($ Id.VSub_DollarName '$export_dynamic_flag_spec') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                        )
                      }
                    )
                    (C {<func_append>} {<compile_command>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                    (C {<func_append>} {<finalize_command>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                  ]
                  spids: [34630 34653]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:oldlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [34688]
                )
              ]
            )
            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$output'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:outputname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                  spids: [34702]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobjs_save)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$libobjs')}
                  spids: [34706]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'shlib_search_path='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>
                      } 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                      } {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\|'>)} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <SED>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) <'s/'> <Id.Lit_Colon ':'> <'/'>} 
                      {<'/g'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        )
                      }
                    )
                  ]
                  spids: [34711 34722]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:shlib_search_path)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [34759]
                    )
                  ]
                )
              ]
            )
            (C {<eval>} 
              {<Id.Lit_VarLike 'sys_lib_search_path='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$sys_lib_search_path_spec') 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
            (C {<eval>} 
              {<Id.Lit_VarLike 'sys_lib_dlsearch_path='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$sys_lib_dlsearch_path_spec') 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
              }
            )
            (C {<func_munge_path_list>} {<sys_lib_dlsearch_path>} 
              {(DQ ($ Id.VSub_DollarName '$LT_SYS_LIBRARY_PATH'))}
            )
            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$output'))} {(DQ <'/'>)} {(DQ )})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:output_objdir)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$func_dirname_result') ($ Id.VSub_DollarName '$objdir')}
                  spids: [34810]
                )
              ]
            )
            (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$output_objdir') <'/'>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool_output_objdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_to_tool_file_result')}
                  spids: [34823]
                )
              ]
            )
            (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName '$output_objdir'))})
            (command.Case
              to_match: {($ Id.VSub_DollarName '$output')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [(C {<func_fatal_help>} {(DQ <'you must specify an output file'>)})]
                  spids: [34850 34852 34862 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<oldlib>}
                          spids: [34870]
                        )
                      ]
                    )
                  ]
                  spids: [34865 34868 34873 -1]
                )
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <.lo>}
                    {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<obj>}
                          spids: [34886]
                        )
                      ]
                    )
                  ]
                  spids: [34876 34884 34889 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<lib>}
                          spids: [34896]
                        )
                      ]
                    )
                  ]
                  spids: [34892 34894 34899 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<prog>}
                          spids: [34905]
                        )
                      ]
                    )
                  ]
                  spids: [34902 34903 34908 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:specialdeplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [34918]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [34922]
                )
              ]
            )
            (command.ForEach
              iter_name: deplib
              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {($ Id.VSub_DollarName '$opt_preserve_dup_deps')})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$libs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (C {<func_append>} {<specialdeplibs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                    )
                                  ]
                                  spids: [34963 34970 34981 -1]
                                )
                              ]
                            )
                          ]
                          spids: [34945 34950]
                        )
                      ]
                    )
                    (C {<func_append>} {<libs>} {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))})
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:libs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$predeps') <' '> 
                                ($ Id.VSub_DollarName '$libs') <' '> ($ Id.VSub_DollarName '$compiler_lib_search_path') <' '> ($ Id.VSub_DollarName '$postdeps')
                              )
                            }
                          spids: [35020]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pre_post_deps)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35045]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C 
                                      {
                                        ($ Id.VSub_DollarName 
'$opt_duplicate_compiler_generated_deps'
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: pre_post_dep
                              iter_words: [
                                {($ Id.VSub_DollarName '$predeps')}
                                {($ Id.VSub_DollarName '$postdeps')}
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$pre_post_deps') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$pre_post_dep') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_append>} {<specialdeplibs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$pre_post_deps'))}
                                            )
                                          ]
                                          spids: [35080 35087 35098 -1]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<pre_post_deps>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$pre_post_dep'))}
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [35048 35053]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pre_post_deps)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35120]
                        )
                      ]
                    )
                  ]
                  spids: [35004 35017]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [35127]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [35130]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:newlib_search_path)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [35133]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:need_relink)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [35136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:notinst_deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [35143]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:notinst_path)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [35149]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$linkmode')}
              arms: [
                (case_arm
                  pat_list: [{<lib>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv dlpreopen link'>)}
                          spids: [35167]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: file
                      iter_words: [
                        {($ Id.VSub_DollarName '$dlfiles')}
                        {($ Id.VSub_DollarName '$dlprefiles')}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  spids: [35194 35196 35198 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'libraries can \'-dlopen\' only libtool libraries: '> 
                                          ($ Id.VSub_DollarName '$file')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [35201 35202 35213 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [35163 35164 35222 -1]
                )
                (case_arm
                  pat_list: [{<prog>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_deplibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35229]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35232]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:alldeplibs)
                          op: assign_op.Equal
                          rhs: {<false>}
                          spids: [35235]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:newdlfiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35239]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:newdlprefiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [35242]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv scan dlopen dlpreopen link'>)}
                          spids: [35245]
                        )
                      ]
                    )
                  ]
                  spids: [35225 35226 35251 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <conv>)}
                          spids: [35257]
                        )
                      ]
                    )
                  ]
                  spids: [35254 35255 35263 -1]
                )
              ]
            )
            (command.ForEach
              iter_name: pass
              iter_words: [{($ Id.VSub_DollarName '$passes')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<lib> <Id.Lit_Comma ','> <link>} {<Id.Lit_Equals '='>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$linkmode') <','> 
                                          ($ Id.VSub_DollarName '$pass')
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [35318]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: deplib
                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$tmp_deplibs')
                                              )
                                            }
                                          spids: [35333]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$tmp_deplibs')}
                                  spids: [35344]
                                )
                              ]
                            )
                          ]
                          spids: [35290 35307]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<lib> <Id.Lit_Comma ','> <link>} 
                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                        )
                                        (C {<test>} {<prog> <Id.Lit_Comma ','> <scan>} 
                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$deplibs')}
                                  spids: [35389]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [35393]
                                )
                              ]
                            )
                          ]
                          spids: [35352 35386]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$pass')}
                              arms: [
                                (case_arm
                                  pat_list: [{<dlopen>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libs)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$dlfiles')}
                                          spids: [35425]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35422 35423 35428 -1]
                                )
                                (case_arm
                                  pat_list: [{<dlpreopen>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libs)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$dlprefiles')}
                                          spids: [35434]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35431 35432 35437 -1]
                                )
                                (case_arm
                                  pat_list: [{<link>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libs)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$deplibs') <' %DEPLIBS%'>)}
                                          spids: [35444]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} 
                                          {(DQ <X> ($ Id.VSub_DollarName '$link_all_deplibs'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<Xno>}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:libs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$libs') <' '> 
                                                    ($ Id.VSub_DollarName '$dependency_libs')
                                                  )
                                                }
                                              spids: [35465]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35440 35441 35473 -1]
                                )
                              ]
                            )
                          ]
                          spids: [35399 35412]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<lib> <Id.Lit_Comma ','> <dlpreopen>} 
                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: lib
                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [35522]
                                        )
                                      ]
                                    )
                                    (C {<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$lib')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                          action: [
                                            (C {<func_source>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [35539 35541 35549 -1]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$deplib'))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplib_base)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_basename_result')}
                                                  spids: [35583]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$weak_libs') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$deplib_base') 
                                                        <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [35598 35605 35607 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<deplibs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                  ]
                                                  spids: [35610 35611 35622 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$dlprefiles')}
                                  spids: [35634]
                                )
                              ]
                            )
                          ]
                          spids: [35482 35499]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<dlopen>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_deplibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$deplibs')}
                                  spids: [35661]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [35665]
                                )
                              ]
                            )
                          ]
                          spids: [35641 35654]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$libs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lib)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [35684]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:found)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [35687]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplib')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<-mt>}
                                    {<-mthreads>}
                                    {<-kthread>}
                                    {<-Kthread>}
                                    {<-pthread>}
                                    {<-pthreads>}
                                    {<--thread-safe>}
                                    {<-threads>}
                                    {<-fopenmp>}
                                    {<-openmp>}
                                    {<-mp>}
                                    {<-xopenmp>}
                                    {<-omp>}
                                    {<-qsmp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [35753]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [35761]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [35733 35750]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_append>} {<compiler_flags>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                        ) <' '>
                                                      )
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName '$deplib') 
                                                            <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [35808 35815 35817 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_append>} 
                                                          {<new_inherited_linker_flags>} {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                        )
                                                      ]
                                                      spids: [35820 35822 35833 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [35782 35795]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [35698 35730 35848 -1]
                                )
                                (case_arm
                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<lib>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                        (C {<test>} {<prog>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_warning>} 
                                              {(DQ <'\'-l\' is ignored for archives/objects'>)}
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [35856 35883]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ <-l>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [35913]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:searchdirs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$newlib_search_path') <' '> ($ Id.VSub_DollarName '$lib_search_path') <' '> ($ Id.VSub_DollarName '$compiler_lib_search_dirs') 
                                                        <' '> ($ Id.VSub_DollarName '$sys_lib_search_path') <' '> ($ Id.VSub_DollarName '$shlib_search_path')
                                                      )
                                                    }
                                                  spids: [35933]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [35917 35930]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:searchdirs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$newlib_search_path') 
                                                    <' '> ($ Id.VSub_DollarName '$lib_search_path') <' '> ($ Id.VSub_DollarName '$sys_lib_search_path') <' '> 
                                                    ($ Id.VSub_DollarName '$shlib_search_path')
                                                  )
                                                }
                                              spids: [35950]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: searchdir
                                      iter_words: [{($ Id.VSub_DollarName '$searchdirs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ForEach
                                              iter_name: search_ext
                                              iter_words: [
                                                {<.la>}
                                                {($ Id.VSub_DollarName '$std_shrext')}
                                                {<.so>}
                                                {<.a>}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lib)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName '$searchdir') 
                                                              <'/lib'> ($ Id.VSub_DollarName '$name') ($ Id.VSub_DollarName '$search_ext')
                                                            }
                                                          spids: [35999]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-f>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$lib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<.la>} 
                                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$search_ext'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: found
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<Id.Lit_Colon ':'>}
                                                                          spids: [36036]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [36020 36033]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: found
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<false>}
                                                                      spids: [36043]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.ControlFlow
                                                              token: <Id.ControlFlow_Break break>
                                                              arg_word: {<2>}
                                                            )
                                                          ]
                                                          spids: [36006 36017]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: (C {($ Id.VSub_DollarName '$found')})
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$allow_libtool_libs_with_static_runtimes'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$predeps') 
                                                            <' '> ($ Id.VSub_DollarName '$postdeps') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<func_lalib_p>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$lib'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: library_names
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (word.Empty)
                                                                          spids: [36135]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: old_library
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (word.Empty)
                                                                          spids: [36138]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<func_source>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$lib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ForEach
                                                                      iter_name: l
                                                                      iter_words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$old_library'
                                                                          )
                                                                        }
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$library_names'
                                                                          )
                                                                        }
                                                                      ]
                                                                      do_arg_iter: F
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: ll
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$l'
                                                                                      )
                                                                                    }
                                                                                  spids: [36162]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {
                                                                                        (DQ <X> 
                                                                                          ($ 
Id.VSub_DollarName '$ll'
                                                                                          )
                                                                                        )
                                                                                      } {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$old_library'))}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: found
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<false>}
                                                                                  spids: [36192]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (C {<func_dirname>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$lib'
                                                                                  )
                                                                                )
                                                                              } {(DQ )} {(DQ <.>)}
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: ladir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$func_dirname_result'
                                                                                      )
                                                                                    }
                                                                                  spids: [36210]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: lib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$ladir'
                                                                                      ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                    }
                                                                                  spids: [36214]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
test
                                                                                                >
                                                                                              } {<prog> <Id.Lit_Comma ','> <link>} {<Id.Lit_Equals '='>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  ($ 
Id.VSub_DollarName '$linkmode'
                                                                                                  ) <','> ($ Id.VSub_DollarName '$pass')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
compile_deplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$deplib'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                                              )
                                                                                            }
                                                                                          spids: [
36240
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
finalize_deplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$deplib'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                                              )
                                                                                            }
                                                                                          spids: [
36248
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [36220 36237]
                                                                                )
                                                                              ]
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: 
deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$deplib'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                                          )
                                                                                        }
                                                                                      spids: [36259]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                                (command.AndOr
                                                                                  ops: [Id.Op_DAmp]
                                                                                  children: [
                                                                                    (C {<test>} {<lib>} 
                                                                                      {
                                                                                        <
Id.Lit_Equals '='
                                                                                        >
                                                                                      } {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
newdependency_libs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$deplib'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$newdependency_libs')
                                                                                              )
                                                                                            }
                                                                                          spids: [
36279
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ControlFlow
                                                                              token: 
                                                                                <
Id.ControlFlow_Continue continue
                                                                                >
                                                                            )
                                                                          ]
                                                                          spids: [36169 36186]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [36123 36132]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [36113 36120 36299 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          spids: [36302 36303 36305 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [36084 36097]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [36064 36069]
                                        )
                                      ]
                                      else_action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$compile_deplibs')
                                                          )
                                                        }
                                                      spids: [36341]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$finalize_deplibs')
                                                          )
                                                        }
                                                      spids: [36349]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [36321 36338]
                                            )
                                          ]
                                          else_action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [36360]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName 
'$newdependency_libs'
                                                            )
                                                          )
                                                        }
                                                      spids: [36380]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35851 35853 36397 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.ltframework>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [36428]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [36436]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [36408 36425]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [36447]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                        ) <' '>
                                                      )
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName '$deplib') 
                                                            <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [36481 36488 36490 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_append>} 
                                                          {<new_inherited_linker_flags>} {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                        )
                                                      ]
                                                      spids: [36493 36495 36506 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [36455 36468]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [36403 36405 36521 -1]
                                )
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$linkmode')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<lib>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [36540]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$newdependency_libs')
                                                      )
                                                    }
                                                  spids: [36563]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                            (C {<func_resolve_sysroot>} 
                                              {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))}
                                            )
                                            (C {<func_append>} {<newlib_search_path>} 
                                              {
                                                (DQ <' '> 
                                                  ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [36536 36537 36602 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                                              {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [36625]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [36609 36622]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<scan>} {<Id.Lit_Equals '='>} 
                                                              {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [36655]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [36639 36652]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$compile_deplibs')
                                                          )
                                                        }
                                                      spids: [36666]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$finalize_deplibs')
                                                          )
                                                        }
                                                      spids: [36674]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                            (C {<func_resolve_sysroot>} 
                                              {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))}
                                            )
                                            (C {<func_append>} {<newlib_search_path>} 
                                              {
                                                (DQ <' '> 
                                                  ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [36605 36606 36716 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_warning>} 
                                              {(DQ <'\'-L\' is ignored for archives/objects'>)}
                                            )
                                          ]
                                          spids: [36719 36720 36730 -1]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [36524 36526 36742 -1]
                                )
                                (case_arm
                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<link>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                            (C {<func_resolve_sysroot>} 
                                              {(DQ ($ Id.VSub_DollarName '$func_stripname_result'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                      )
                                                    }
                                                  spids: [36790]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [36808 36815 36817 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<xrpath>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$dir'))}
                                                    )
                                                  ]
                                                  spids: [36820 36821 36832 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [36753 36766]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [36841]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [36748 36750 36852 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  action: [
                                    (C {<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName '$deplib'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
                                          spids: [36867]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36855 36857 36871 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [36896]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [36880 36893]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$linkmode')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<lib>}]
                                          action: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$dlpreconveniencelibs') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [36940 36947 36949 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:valid_a_lib)
                                                          op: assign_op.Equal
                                                          rhs: {<false>}
                                                          spids: [36956]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          ($ Id.VSub_DollarName 
'$deplibs_check_method'
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<match_pattern> <Id.Lit_Star '*'>}
                                                          ]
                                                          action: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<set>} {<dummy>} 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
'$deplibs_check_method'
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                            (C {<shift>})
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: match_pattern_regex
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {<expr>} 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$deplibs_check_method'
                                                                                )
                                                                              )
                                                                            } {<Id.Lit_Colon ':'>} 
                                                                            {
                                                                              (DQ 
                                                                                ($ Id.VSub_Number 
'$1'
                                                                                ) <' '> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                                              )
                                                                            }
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [36982]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.Pipeline
                                                                              children: [
                                                                                (command.Simple
                                                                                  words: [
                                                                                    {<eval>}
                                                                                    {
                                                                                      (DQ 
                                                                                        (word_part.EscapedLiteral
                                                                                          token: 
                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                            >
                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$deplib') 
                                                                                        (word_part.EscapedLiteral
                                                                                          token: 
                                                                                            <
Id.Lit_EscapedChar '\\"'
                                                                                            >
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '2>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 2
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          <
'/dev/null'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (C 
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName '$SED'
                                                                                    )
                                                                                  } {<10q>}
                                                                                )
                                                                                (command.Simple
                                                                                  words: [
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$EGREP'
                                                                                      )
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$match_pattern_regex'
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          <
'/dev/null'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              negated: F
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: valid_a_lib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<Id.Lit_Colon ':'>}
                                                                          spids: [37048]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [37009 37045]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [36967 36969 37055 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<pass_all>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: valid_a_lib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<Id.Lit_Colon ':'>}
                                                                  spids: [37062]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [37058 37059 37066 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$valid_a_lib'
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: Linking the shared library '
                                                                  > ($ Id.VSub_DollarName '$output') <' against the'>
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ <'*** static library '> 
                                                                  ($ Id.VSub_DollarName '$deplib') <' is not portable!'>
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                      )
                                                                    }
                                                                  spids: [37101]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [37072 37077]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<echo>})
                                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                                          {
                                                            (DQ 
                                                              <
'*** Warning: Trying to link with static lib archive '
                                                              > ($ Id.VSub_DollarName '$deplib') <.>
                                                            )
                                                          }
                                                        )
                                                        (C {<echo>} 
                                                          {
                                                            (DQ 
                                                              <
'*** I have the capability to make that library automatically link in when'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (C {<echo>} 
                                                          {
                                                            (DQ 
                                                              <
'*** you link to this library.  But I can only do this if you have a'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (C {<echo>} 
                                                          {
                                                            (DQ 
                                                              <
'*** shared version of the library, which you do not appear to have'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (C {<echo>} 
                                                          {
                                                            (DQ <'*** because the file extensions .'> 
                                                              ($ Id.VSub_DollarName '$libext') <' of this argument makes me believe'>
                                                            )
                                                          }
                                                        )
                                                        (C {<echo>} 
                                                          {
                                                            (DQ 
                                                              <
'*** that it is just a static archive that I should not use here.'
                                                              >
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [36952 36953 37164 -1]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [36917 36918 37173 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<link>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [37197]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [37180 37194]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$compile_deplibs')
                                                          )
                                                        }
                                                      spids: [37208]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$finalize_deplibs')
                                                          )
                                                        }
                                                      spids: [37216]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [37176 37177 37230 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36874 36877 37239 -1]
                                )
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <.lo>}
                                    {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [37272]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [37256 37269]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                                              children: [
                                                                (C {<test>} {<dlpreopen>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                                )
                                                                (C {<test>} {<yes>} 
                                                                  {<Id.KW_Bang '!'> 
                                                                    <Id.Lit_Equals '='>
                                                                  } {(DQ ($ Id.VSub_DollarName '$dlopen_support'))}
                                                                )
                                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$build_libtool_libs'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<newdlprefiles>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                              )
                                                            }
                                                          spids: [37355]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                              )
                                                            }
                                                          spids: [37363]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [37296 37334]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_append>} {<newdlfiles>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [37280 37293]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [37245 37253 37393 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Other '%'> <DEPLIBS> <Id.Lit_Other '%'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:alldeplibs)
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                          spids: [37402]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [37396 37399 37409 -1]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$found')})
                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'cannot find the library \''> ($ Id.VSub_DollarName '$lib') 
                                      <'\' or unhandled argument \''> ($ Id.VSub_DollarName '$deplib') <'\''>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$lib') 
                                      <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$lib'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ladir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [37485]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlname)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37490]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlopen)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37493]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlpreopen)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37496]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37499]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37502]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:old_library)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37505]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:inherited_linker_flags)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37508]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:installed)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [37519]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:shouldnotlink)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [37523]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:avoidtemprpath)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37527]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$inherited_linker_flags'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_inherited_linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$inherited_linker_flags'
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (SQ 
                                                            <
's/-framework \\([^ $]*\\)/\\1.ltframework/g'
                                                            >
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [37562]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: tmp_inherited_linker_flag
                                      iter_words: [
                                        {($ Id.VSub_DollarName '$tmp_inherited_linker_flags')}
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                    ) <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName 
'$tmp_inherited_linker_flag'
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [37611 37618 37620 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<new_inherited_linker_flags>} 
                                                      {
                                                        (DQ <' '> 
                                                          ($ Id.VSub_DollarName 
'$tmp_inherited_linker_flag'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [37623 37624 37634 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [37548 37559]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$dependency_libs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [37646]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<lib> <Id.Lit_Comma ','> <link>} 
                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                )
                                                (C {<test>} {<prog> <Id.Lit_Comma ','> <scan>} 
                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<test>} {<prog>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                            )
                                                            (C {<test>} {<lib>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dlopen'))})
                                        (C {<func_append>} {<dlfiles>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$dlopen'))}
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dlpreopen'))})
                                        (C {<func_append>} {<dlprefiles>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$dlpreopen'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37673 37739]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$pass'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [37806]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$old_library'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_fatal_error>} 
                                                      {
                                                        (DQ 
                                                          <
'cannot find name of link library for \''
                                                          > ($ Id.VSub_DollarName '$lib') <'\''>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [37828 37839]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<convenience>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$ladir') <'/'> 
                                                  ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                                )
                                              }
                                            )
                                            (C {<func_append>} {<old_convenience>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$ladir') <'/'> 
                                                  ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:tmp_libs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [37886]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: deplib
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [37901]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$tmp_libs') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (C {<func_append>} 
                                                                      {<specialdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                                    )
                                                                  ]
                                                                  spids: [37927 37934 37945 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [37909 37914]
                                                        )
                                                      ]
                                                    )
                                                    (C {<func_append>} {<tmp_libs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [37814 37825]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<prog>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                        (C {<test>} {<lib>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'\''> ($ Id.VSub_DollarName '$lib') 
                                                  <'\' is not a convenience library'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [37967 37994]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [37786 37799]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:linklib)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [38024]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DPipe]
                                                          children: [
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$prefer_static_libs'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<test>} 
                                                              {<built> <Id.Lit_Comma ','> <no>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$prefer_static_libs'
                                                                  ) <','> ($ Id.VSub_DollarName '$installed')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linklib)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$old_library')}
                                          spids: [38076]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [38027 38073]
                                )
                              ]
                              else_action: [
                                (command.ForEach
                                  iter_name: l
                                  iter_words: [
                                    {($ Id.VSub_DollarName '$old_library')}
                                    {($ Id.VSub_DollarName '$library_names')}
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:linklib)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$l')}
                                              spids: [38097]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$linklib'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ <'cannot find name of link library for \''> 
                                          ($ Id.VSub_DollarName '$lib') <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [38107 38118]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<dlopen>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$pass'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libdir'))})
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'cannot -dlopen a convenience library: \''> 
                                              ($ Id.VSub_DollarName '$lib') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe Id.Op_DPipe]
                                                  children: [
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                    )
                                                    (C {<test>} {<yes>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dlopen_support'))}
                                                    )
                                                    (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$build_libtool_libs')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_append>} {<dlprefiles>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$lib') <' '> 
                                                  ($ Id.VSub_DollarName '$dependency_libs')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [38175 38213]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_append>} {<newdlfiles>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$lib'))}
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [38138 38151]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$ladir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:abs_ladir)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$ladir')}
                                          spids: [38300]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [38281 38298 38303 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:abs_ladir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DAmp]
                                                    children: [
                                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$ladir'))})
                                                      (C {<pwd>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [38310]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$abs_ladir'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  <'cannot determine absolute directory name of \''> ($ Id.VSub_DollarName '$ladir') <'\''>
                                                )
                                              }
                                            )
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  <
'passing it literally to the linker, although it might fail'
                                                  >
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:abs_ladir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$ladir')}
                                                  spids: [38356]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38326 38337]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [38306 38307 38363 -1]
                                )
                              ]
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:laname)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                  spids: [38376]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$installed'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName '$lt_sysroot') 
                                                              ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-f>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName '$abs_ladir') 
                                                              <'/'> ($ Id.VSub_DollarName '$linklib')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ <'library \''> ($ Id.VSub_DollarName '$lib') 
                                                  <'\' was moved.'>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$ladir')}
                                                  spids: [38441]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:absdir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$abs_ladir')}
                                                  spids: [38445]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$abs_ladir')}
                                                  spids: [38449]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38401 38429]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dir)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$lt_sysroot') 
                                                  ($ Id.VSub_DollarName '$libdir')
                                                }
                                              spids: [38456]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:absdir)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$lt_sysroot') 
                                                  ($ Id.VSub_DollarName '$libdir')
                                                }
                                              spids: [38461]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$hardcode_automatic'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:avoidtemprpath)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [38481]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [38385 38398]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$ladir') <'/'> 
                                                          ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                        )
                                                      }
                                                    )
                                                    (C {<test>} {<-f>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                                          ($ Id.VSub_DollarName '$linklib')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dir)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$ladir')}
                                              spids: [38520]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:absdir)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$abs_ladir')}
                                              spids: [38524]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<notinst_path>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$abs_ladir'))}
                                        )
                                      ]
                                      spids: [38488 38517]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$ladir') <'/'> 
                                              ($ Id.VSub_DollarName '$objdir')
                                            }
                                          spids: [38545]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:absdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                              ($ Id.VSub_DollarName '$objdir')
                                            }
                                          spids: [38551]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<notinst_path>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$abs_ladir'))}
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.la>)} 
                              {(DQ ($ Id.VSub_DollarName '$laname'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [38595]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<dlpreopen>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$pass'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                        )
                                                        (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ 
                                                  <
'only libraries may -dlpreopen a convenience library: \''
                                                  > ($ Id.VSub_DollarName '$lib') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [38620 38643]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_tr_sh>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                          ($ Id.VSub_DollarName '$linklib')
                                                        )
                                                      }
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <libfile_> 
                                                          ($ Id.VSub_DollarName '$func_tr_sh_result') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'abs_ladir/'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                          ) <laname>
                                                        )
                                                      }
                                                    )
                                                    (C {<func_append>} {<newdlprefiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                          ($ Id.VSub_DollarName '$linklib')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [38720 38731]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_append>} {<newdlprefiles>} 
                                                  {
                                                    (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                      ($ Id.VSub_DollarName '$old_library')
                                                    )
                                                  }
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                    )
                                                    (C {<func_append>} {<dlpreconveniencelibs>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                          ($ Id.VSub_DollarName '$old_library')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38669 38685 38818 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$old_library'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<newdlprefiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                          ($ Id.VSub_DollarName '$old_library')
                                                        )
                                                      }
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                        )
                                                        (C {<func_append>} {<dlpreconveniencelibs>} 
                                                          {
                                                            (DQ <' '> ($ Id.VSub_DollarName '$dir') 
                                                              <'/'> ($ Id.VSub_DollarName '$old_library')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [38834 38845]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<newdlprefiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                          ($ Id.VSub_DollarName '$dlname')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [38896 38907]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_append>} {<newdlprefiles>} 
                                                  {
                                                    (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                      ($ Id.VSub_DollarName '$linklib')
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38821 38823 38940 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [38604 38617]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libdir'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [38987]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38971 38984]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [39017]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [39027]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [38997 39014]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [39040]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [38953 38964]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                )
                                                (C {<test>} {<link>} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<newlib_search_path>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$ladir'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [39101]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linkalldeplibs)
                                          op: assign_op.Equal
                                          rhs: {<false>}
                                          spids: [39110]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} {<no>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$link_all_deplibs'))}
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$library_names')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$build_libtool_libs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:linkalldeplibs)
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                  spids: [39154]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39114 39151]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [39162]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                    (C {<func_resolve_sysroot>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (C {<func_append>} {<newlib_search_path>} 
                                                      {
                                                        (DQ <' '> 
                                                          ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [39184 39186 39219 -1]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C 
                                                              {
                                                                ($ Id.VSub_DollarName 
'$linkalldeplibs'
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [39237]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39229 39234]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName 
'$newdependency_libs'
                                                            )
                                                          )
                                                        }
                                                      spids: [39256]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C 
                                                              {
                                                                ($ Id.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '>)
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (C {<func_append>} {<specialdeplibs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$deplib')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [39285 39292 39303 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39267 39272]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<tmp_libs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                          ]
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [39062 39088]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$library_names')
                                                            )
                                                          }
                                                        )
                                                        (BraceGroup
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (BraceGroup
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DPipe]
                                                                              children: [
                                                                                (C {<test>} {<no>} 
                                                                                  {
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  } {(DQ ($ Id.VSub_DollarName '$prefer_static_libs'))}
                                                                                )
                                                                                (C {<test>} 
                                                                                  {<built> 
                                                                                    <Id.Lit_Comma 
','
                                                                                    > <yes>
                                                                                  } {<Id.Lit_Equals '='>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$prefer_static_libs'
                                                                                      ) <','> ($ Id.VSub_DollarName '$installed')
                                                                                    )
                                                                                  }
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<test>} {<-z>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$old_library'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$shlibpath_var'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$avoidtemprpath'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {($ Id.VSub_DollarName '$temp_rpath') 
                                                          <Id.Lit_Colon ':'>
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ ($ Id.VSub_DollarName '$absdir') 
                                                                <':'>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [39463 39469 39471 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<temp_rpath>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$absdir') 
                                                                  <':'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [39474 39475 39486 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39427 39448]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$absdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [39519 39526 39528 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$compile_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$absdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [39545 39552 39554 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<compile_rpath>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$absdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [39557 39558 39569 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39531 39532 39575 -1]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [39592 39599 39601 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_rpath') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [39618 39625 39627 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<finalize_rpath>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$libdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [39630 39631 39642 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39604 39605 39648 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39358 39420]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {($ Id.VSub_DollarName '$alldeplibs')})
                                                        (BraceGroup
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<test>} {<pass_all>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$deplibs_check_method'))}
                                                                    )
                                                                    (BraceGroup
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DAmp]
                                                                              children: [
                                                                                (C {<test>} {<yes>} 
                                                                                  {
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  } {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                                                                )
                                                                                (C {<test>} {<-n>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$library_names'
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [39661 39713]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39338 39355]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_static)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [39730]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:use_static_libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$prefer_static_libs')}
                                  spids: [39737]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<built>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$use_static_libs'))}
                                                )
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$installed'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:use_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [39769]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39741 39766]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$library_names'))}
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DPipe]
                                                          children: [
                                                            (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$use_static_libs'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$old_library'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <os2> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (C {<func_append>} {<notinst_deplibs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$lib'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:need_relink)
                                                  op: assign_op.Equal
                                                  rhs: {<no>}
                                                  spids: [39863]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39825 39846 39867 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$installed')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<notinst_deplibs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$lib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:need_relink)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [39900]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39874 39887]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39870 39871 39907 -1]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlopenmodule)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [39926]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dlpremoduletest
                                      iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <X> 
                                                                  ($ Id.VSub_DollarName 
'$dlpremoduletest'
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:dlopenmodule)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$dlpremoduletest'
                                                              )
                                                            }
                                                          spids: [39961]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [39941 39958]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$dlopenmodule')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$shouldnotlink')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<link>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pass'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<echo>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$linkmode')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {($ Id.VSub_DollarName '$ECHO')} 
                                                      {
                                                        (DQ <'*** Warning: Linking the executable '> 
                                                          ($ Id.VSub_DollarName '$output') <' against the loadable module'>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [40015 40028]
                                                )
                                              ]
                                              else_action: [
                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                  {
                                                    (DQ <'*** Warning: Linking the shared library '> 
                                                      ($ Id.VSub_DollarName '$output') <' against the loadable module'>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ <'*** '> ($ Id.VSub_DollarName '$linklib') 
                                                  <' is not portable!'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [39974 40009]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_into_libs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$absdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [40119 40126 40128 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$compile_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$absdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [40145 40152 40154 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<compile_rpath>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$absdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [40157 40158 40169 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40131 40132 40175 -1]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [40192 40199 40201 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_rpath') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [40218 40225 40227 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<finalize_rpath>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$libdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [40230 40231 40242 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40204 40205 40248 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40067 40093]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$old_archive_from_expsyms_cmds'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<set>} {<dummy>} 
                                              {($ Id.VSub_DollarName '$library_names')}
                                            )
                                            (C {<shift>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:realname)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number '$1')}
                                                  spids: [40286]
                                                )
                                              ]
                                            )
                                            (C {<shift>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libname)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<eval>} 
                                                            {
                                                              (DQ 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                                ) <'ECHO '>
                                                              ) ($ Id.VSub_DollarName '$libname_spec') (DQ )
                                                            }
                                                          )
                                                      )
                                                    }
                                                  spids: [40293]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:soname)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$dlname')}
                                                          spids: [40333]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40319 40330]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$soname_spec'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$host')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> <cygwin> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<mingw> <Id.Lit_Star '*'>}
                                                            {<Id.Lit_Star '*'> <cegcc> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <os2> <Id.Lit_Star '*'>}
                                                          ]
                                                          action: [
                                                            (C {<func_arith>} 
                                                              {($ Id.VSub_DollarName '$current')} {<->} {($ Id.VSub_DollarName '$age')}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:major)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                      )
                                                                    }
                                                                  spids: [40394]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: versuffix
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-> 
                                                                      ($ Id.VSub_DollarName '$major')
                                                                    }
                                                                  spids: [40398]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40362 40382 40403 -1]
                                                        )
                                                      ]
                                                    )
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'soname='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) ($ Id.VSub_DollarName '$soname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                      }
                                                    )
                                                  ]
                                                  spids: [40337 40348]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:soname)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$realname')}
                                                      spids: [40420]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:soroot)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$soname')}
                                                  spids: [40432]
                                                )
                                              ]
                                            )
                                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$soroot'))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:soname)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_basename_result')}
                                                  spids: [40443]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.dll>)} 
                                              {(DQ ($ Id.VSub_DollarName '$soname'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newlib)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<libimp-> 
                                                      ($ Id.VSub_DollarName '$func_stripname_result') <.a>
                                                    }
                                                  spids: [40462]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-f>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$soname') <-def>
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [(C {<Id.Lit_Colon ':'>})]
                                                  spids: [40473 40487]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'extracting exported symbol list from \''> 
                                                      ($ Id.VSub_DollarName '$soname') <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$extract_expsyms_cmds')
                                                    )
                                                  } {(SQ <'exit $?'>)}
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-f>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$newlib')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Sentence
                                                      child: (C {<Id.Lit_Colon ':'>})
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [40523 40536]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'generating import library for \''> 
                                                      ($ Id.VSub_DollarName '$soname') <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$old_archive_from_expsyms_cmds'
                                                      )
                                                    )
                                                  } {(SQ <'exit $?'>)}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$output_objdir')}
                                                  spids: [40571]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:linklib)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$newlib')}
                                                  spids: [40575]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40258 40269]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                        (C {<test>} {<relink>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_shlibpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [40615]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_dir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [40618]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [40621]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lib_linked)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [40624]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$hardcode_action')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<immediate>} {<unsupported>}]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<no>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_direct'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName '$dir') 
                                                                      <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                    }
                                                                  spids: [40659]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {($ Id.VSub_DollarName '$host')}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sco3.2v5.0.> <Id.Lit_LBracket '['> <024> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
'$dir'
                                                                              )
                                                                            }
                                                                          spids: [40682]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40672 40680 40686 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv4> <Id.Lit_Star '*'> <uw2> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
'$dir'
                                                                              )
                                                                            }
                                                                          spids: [40698]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40689 40696 40702 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv5OpenUNIX> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv5UnixWare7.> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'> <.> <Id.Lit_LBracket '['> <10> 
                                                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-unixware7> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
'$dir'
                                                                              )
                                                                            }
                                                                          spids: [40737]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40705 40735 40741 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (command.Pipeline
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          words: [
                                                                                            {
                                                                                              <
'/usr/bin/file'
                                                                                              >
                                                                                            }
                                                                                            {<-L>}
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName '$add'
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName '$GREP'
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (DQ 
                                                                                                <
': [^:]* bundle'
                                                                                                >
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                      ]
                                                                                      negated: F
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
test
                                                                                                >
                                                                                              } {(DQ <X> ($ Id.VSub_DollarName '$dlopenmodule'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  <
X
                                                                                                  > ($ Id.VSub_DollarName '$lib')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (C 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$ECHO'
                                                                                        )
                                                                                      } {(DQ <'*** Warning: lib '> ($ Id.VSub_DollarName '$linklib') <' is a module, not a shared library'>)}
                                                                                    )
                                                                                    (command.If
                                                                                      arms: [
                                                                                        (if_arm
                                                                                          cond: 
                                                                                            (condition.Shell
                                                                                              commands: [
                                                                                                (command.Sentence
                                                                                                  child: 
                                                                                                    (C 
                                                                                                      {
                                                                                                        <
test
                                                                                                        >
                                                                                                      } {<-z>} {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                                                                    )
                                                                                                  terminator: 
                                                                                                    <
Id.Op_Semi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          action: [
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              }
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              } {(DQ <'*** And there doesn\'t seem to be a static archive available'>)}
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              } {(DQ <'*** The link will probably fail, sorry'>)}
                                                                                            )
                                                                                          ]
                                                                                          spids: [
40819
40830
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_action: [
                                                                                        (command.ShAssignment
                                                                                          pairs: [
                                                                                            (assign_pair
                                                                                              lhs: 
                                                                                                (sh_lhs_expr.Name
                                                                                                  name: 
add
                                                                                                )
                                                                                              op: 
assign_op.Equal
                                                                                              rhs: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName '$dir'
                                                                                                  ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                                }
                                                                                              spids: [
40853
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [40789 40807]
                                                                                )
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
test
                                                                                                >
                                                                                              } {<-n>} {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
add
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName '$dir'
                                                                                              ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                            }
                                                                                          spids: [
40876
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [40862 40873]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [40761 40786]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40744 40750 -1 40888]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40643 40656]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<no>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_minus_L'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {($ Id.VSub_DollarName '$host')}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sunos> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_shlibpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$dir'
                                                                              )
                                                                            }
                                                                          spids: [40921]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40914 40919 40924 -1]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-L> 
                                                                      ($ Id.VSub_DollarName '$dir')
                                                                    }
                                                                  spids: [40930]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> 
                                                                      ($ Id.VSub_DollarName '$name')
                                                                    }
                                                                  spids: [40935]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40891 40904]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<no>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_shlibpath_var'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName '$dir')}
                                                                  spids: [40956]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> 
                                                                      ($ Id.VSub_DollarName '$name')
                                                                    }
                                                                  spids: [40960]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40940 40953]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:lib_linked)
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [40968]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40635 40640 40975 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<relink>}]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DAmp]
                                                                      children: [
                                                                        (C {<test>} {<yes>} 
                                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_direct'))}
                                                                        )
                                                                        (C {<test>} {<no>} 
                                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_direct_absolute'))}
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName '$dir') 
                                                                      <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                    }
                                                                  spids: [41011]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40982 41008]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_minus_L'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-L> 
                                                                      ($ Id.VSub_DollarName '$absdir')
                                                                    }
                                                                  spids: [41033]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$inst_prefix_dir'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.Case
                                                                      to_match: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$libdir'
                                                                          )
                                                                        }
                                                                      arms: [
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_LBracket '['> 
                                                                              (word_part.EscapedLiteral
                                                                                token: 
                                                                                  <
Id.Lit_EscapedChar '\\\\'
                                                                                  >
                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (C {<func_append>} 
                                                                              {<add_dir>} {(DQ <' -L'> ($ Id.VSub_DollarName '$inst_prefix_dir') ($ Id.VSub_DollarName '$libdir'))}
                                                                            )
                                                                          ]
                                                                          spids: [41063 41068 41082 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [41042 41053]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> 
                                                                      ($ Id.VSub_DollarName '$name')
                                                                    }
                                                                  spids: [41091]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [41017 41030]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_shlibpath_var'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName '$dir')}
                                                                  spids: [41112]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> 
                                                                      ($ Id.VSub_DollarName '$name')
                                                                    }
                                                                  spids: [41116]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [41096 41109]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:lib_linked)
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [41124]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40978 40979 41131 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lib_linked)
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [41137]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41134 41135 41140 -1]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$lib_linked'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_fatal_configuration>} 
                                                      {(DQ <'unsupported hardcode properties'>)}
                                                    )
                                                  ]
                                                  spids: [41147 41161]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$add_shlibpath'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {<Id.Lit_Colon ':'> 
                                                          ($ Id.VSub_DollarName '$compile_shlibpath') <Id.Lit_Colon ':'>
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <':'> 
                                                                ($ Id.VSub_DollarName 
'$add_shlibpath'
                                                                ) <':'>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [41198 41205 41207 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<compile_shlibpath>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$add_shlibpath'
                                                                  ) <':'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [41210 41211 41222 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41175 41186]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$linkmode')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$add_dir') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                  )
                                                                }
                                                              spids: [41257]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName '$add') 
                                                                    <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                  )
                                                                }
                                                              spids: [41275]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41231 41244]
                                                )
                                              ]
                                              else_action: [
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add_dir') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [41296]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add') <' '> 
                                                                ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [41314]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.KW_Bang '!'> 
                                                                        <Id.Lit_Equals '='>
                                                                      } {(DQ ($ Id.VSub_DollarName '$hardcode_direct'))}
                                                                    )
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.KW_Bang '!'> 
                                                                        <Id.Lit_Equals '='>
                                                                      } {(DQ ($ Id.VSub_DollarName '$hardcode_minus_L'))}
                                                                    )
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_shlibpath_var'))}
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.Case
                                                          to_match: 
                                                            {<Id.Lit_Colon ':'> 
                                                              ($ Id.VSub_DollarName 
'$finalize_shlibpath'
                                                              ) <Id.Lit_Colon ':'>
                                                            }
                                                          arms: [
                                                            (case_arm
                                                              pat_list: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <':'> 
                                                                    ($ Id.VSub_DollarName '$libdir') <':'>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                              spids: [41375 41382 41384 -1]
                                                            )
                                                            (case_arm
                                                              pat_list: [{<Id.Lit_Star '*'>}]
                                                              action: [
                                                                (C {<func_append>} 
                                                                  {<finalize_shlibpath>} {(DQ ($ Id.VSub_DollarName '$libdir') <':'>)}
                                                                )
                                                              ]
                                                              spids: [41387 41388 41399 -1]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [41322 41363]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40586 40612]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                                        )
                                                        (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_shlibpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [41443]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_dir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [41446]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [41449]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<yes>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_direct'))}
                                                                )
                                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$hardcode_direct_absolute'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName '$libdir') <'/'> 
                                                              ($ Id.VSub_DollarName '$linklib')
                                                            }
                                                          spids: [41485]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41456 41482]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_minus_L'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add_dir)
                                                          op: assign_op.Equal
                                                          rhs: {<-L> ($ Id.VSub_DollarName '$libdir')}
                                                          spids: [41507]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add)
                                                          op: assign_op.Equal
                                                          rhs: {<-l> ($ Id.VSub_DollarName '$name')}
                                                          spids: [41512]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41491 41504]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_shlibpath_var'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {<Id.Lit_Colon ':'> 
                                                          ($ Id.VSub_DollarName '$finalize_shlibpath') <Id.Lit_Colon ':'>
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <':'> 
                                                                ($ Id.VSub_DollarName '$libdir') <':'>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [41542 41549 41551 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<finalize_shlibpath>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$libdir') 
                                                                  <':'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [41554 41555 41566 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add)
                                                          op: assign_op.Equal
                                                          rhs: {<-l> ($ Id.VSub_DollarName '$name')}
                                                          spids: [41572]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41517 41530]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_automatic'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DAmp]
                                                                      children: [
                                                                        (C {<test>} {<-n>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<test>} {<-f>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                              ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                      ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                    }
                                                                  spids: [41621]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [41593 41618]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:add)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName '$libdir') 
                                                                  <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                }
                                                              spids: [41631]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41577 41590]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:add_dir)
                                                      op: assign_op.Equal
                                                      rhs: {<-L> ($ Id.VSub_DollarName '$libdir')}
                                                      spids: [41647]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.Case
                                                          to_match: {($ Id.VSub_DollarName '$libdir')}
                                                          arms: [
                                                            (case_arm
                                                              pat_list: [
                                                                {<Id.Lit_LBracket '['> 
                                                                  (word_part.EscapedLiteral
                                                                    token: 
                                                                      <Id.Lit_EscapedChar '\\\\'>
                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                              action: [
                                                                (C {<func_append>} {<add_dir>} 
                                                                  {
                                                                    (DQ <' -L'> 
                                                                      ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                      ) ($ Id.VSub_DollarName '$libdir')
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [41677 41682 41696 -1]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [41656 41667]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:add)
                                                      op: assign_op.Equal
                                                      rhs: {<-l> ($ Id.VSub_DollarName '$name')}
                                                      spids: [41705]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$linkmode')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$add_dir') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                  )
                                                                }
                                                              spids: [41740]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName '$add') 
                                                                    <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                  )
                                                                }
                                                              spids: [41758]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41714 41727]
                                                )
                                              ]
                                              else_action: [
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add_dir') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [41779]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add') <' '> 
                                                                ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [41797]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41415 41440]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39776 39815]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<unsupported>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_direct'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:linklib)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$old_library')}
                                                      spids: [41866]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$linklib') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [41870]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$linklib') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [41880]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41839 41853]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName '$name') <' -L'> 
                                                    ($ Id.VSub_DollarName '$dir') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                  )
                                                }
                                              spids: [41893]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName '$name') <' -L'> 
                                                    ($ Id.VSub_DollarName '$dir') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                  )
                                                }
                                              spids: [41904]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41811 41824]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<pass_all>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$deplibs_check_method'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<echo>})
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ 
                                                  <
'*** Warning: This system cannot link to static lib archive '
                                                  > ($ Id.VSub_DollarName '$lib') <.>
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** I have the capability to make that library automatically link in when'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** shared version of the library, which you do not appear to have.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {(DQ ($ Id.VSub_DollarName '$module'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** But as you try to build a module library, libtool will still create '
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** a static module, that should work as long as the dlopening application'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** is linked with the -dlopen flag to resolve symbols at runtime.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-z>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$global_symbol_pipe'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<echo>})
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** However, this would only work if libtool was able to extract symbol'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** lists from a program, using \'nm\' or equivalent, but libtool could'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** not find such a program.  So, this module is probably useless.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** \'nm\' from GNU binutils and a full rebuild may help.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [42042 42053]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<no>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: build_libtool_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<module>}
                                                                  spids: [42106]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: build_old_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [42110]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [42090 42103]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [42117]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [42005 42018]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41938 41952]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                    ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [42130]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:link_static)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [42140]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41918 41931]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$dependency_libs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (BraceGroup
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.KW_Bang '!'> 
                                                                        <Id.Lit_Equals '='>
                                                                      } {(DQ ($ Id.VSub_DollarName '$hardcode_into_libs'))}
                                                                    )
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                                                    )
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$link_static'))}
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:temp_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [42233]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: libdir
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$libdir')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: temp_xrpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                      )
                                                                    }
                                                                  spids: [42273]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$xrpath') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$temp_xrpath'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  spids: [42288 42295 42297 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (C {<func_append>} {<xrpath>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
'$temp_xrpath'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [42300 42301 42311 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [42255 42257 42315 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<temp_deplibs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$libdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [42318 42319 42329 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$temp_deplibs')}
                                                  spids: [42338]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [42170 42226]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<newlib_search_path>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$absdir'))}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$link_static'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                                    ($ Id.VSub_DollarName '$laname') <' '> ($ Id.VSub_DollarName '$newdependency_libs')
                                                  )
                                                }
                                              spids: [42372]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [42386]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$newdependency_libs')
                                                      )
                                                    }
                                                  spids: [42401]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                    (C {<func_resolve_sysroot>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [42416 42418 42439 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_resolve_sysroot>} 
                                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                  ]
                                                  spids: [42442 42443 42451 -1]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C 
                                                              {
                                                                ($ Id.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '>)
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                                ) <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (C {<func_append>} {<specialdeplibs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [42475 42482 42494 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [42457 42462]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<tmp_libs>} 
                                              {
                                                (DQ <' '> 
                                                  ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<no>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$link_all_deplibs'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_name: deplib
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:path)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [42550]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$deplib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:path)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName '$deplib')
                                                                    }
                                                                  spids: [42564]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [42560 42562 42567 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_resolve_sysroot>} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:deplib)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_resolve_sysroot_result'
                                                                      )
                                                                    }
                                                                  spids: [42582]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_dirname>} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))} {(DQ )} {(DQ <.>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                      )
                                                                    }
                                                                  spids: [42600]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {($ Id.VSub_DollarName '$dir')}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_LBracket '['> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\\\'>
                                                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_LBracket '['> <A-Za-z> 
                                                                      <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                                      <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$dir'
                                                                              )
                                                                            }
                                                                          spids: [42634]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [42615 42632 42637 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.AndOr
                                                                                    ops: [Id.Op_DAmp]
                                                                                    children: [
                                                                                      (C {<cd>} 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$dir'
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      )
                                                                                      (C {<pwd>})
                                                                                    ]
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [42644]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} {<-z>} 
                                                                                      {
                                                                                        (DQ 
                                                                                          ($ 
Id.VSub_DollarName '$absdir'
                                                                                          )
                                                                                        )
                                                                                      }
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (C {<func_warning>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'cannot determine absolute directory name of \''
                                                                                  > ($ Id.VSub_DollarName '$dir') <'\''>
                                                                                )
                                                                              }
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: absdir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$dir'
                                                                                      )
                                                                                    }
                                                                                  spids: [42683]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [42660 42671]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [42640 42641 42690 -1]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.Simple
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$GREP'
                                                                                  )
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    <
'^installed=no'
                                                                                    >
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$deplib'
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: {<'/dev/null'>}
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.Case
                                                                      to_match: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$host'
                                                                          )
                                                                        }
                                                                      arms: [
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'> <-> 
                                                                              <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: depdepl
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (word.Empty)
                                                                                  spids: [42729]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (C {<eval>} 
                                                                              {
                                                                                <Id.Lit_VarLike 
'deplibrary_names='
                                                                                > 
                                                                                (command_sub
                                                                                  left_token: 
                                                                                    <
Id.Left_Backtick '`'
                                                                                    >
                                                                                  child: 
                                                                                    (C 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$SED'
                                                                                        )
                                                                                      } {<-n>} {<-e>} {(SQ <'s/^library_names=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$deplib')}
                                                                                    )
                                                                                )
                                                                              }
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
test
                                                                                                >
                                                                                              } {<-n>} {(DQ ($ Id.VSub_DollarName '$deplibrary_names'))}
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ForEach
                                                                                      iter_name: tmp
                                                                                      iter_words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$deplibrary_names'
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      do_arg_iter: F
                                                                                      body: 
                                                                                        (command.DoGroup
                                                                                          children: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$tmp'
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
42784
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                    )
                                                                                    (command.If
                                                                                      arms: [
                                                                                        (if_arm
                                                                                          cond: 
                                                                                            (condition.Shell
                                                                                              commands: [
                                                                                                (command.Sentence
                                                                                                  child: 
                                                                                                    (C 
                                                                                                      {
                                                                                                        <
test
                                                                                                        >
                                                                                                      } {<-f>} 
                                                                                                      {
                                                                                                        (DQ 
                                                                                                          ($ 
Id.VSub_DollarName '$absdir'
                                                                                                          ) <'/'> ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                        )
                                                                                                      }
                                                                                                    )
                                                                                                  terminator: 
                                                                                                    <
Id.Op_Semi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$absdir'
                                                                                                      ) <'/'> ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                    }
                                                                                                  spids: [
42809
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
darwin_install_name
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName '$OTOOL'
                                                                                                                  )
                                                                                                                } {<-L>} {($ Id.VSub_DollarName '$depdepl')}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  <
awk
                                                                                                                  >
                                                                                                                } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                          )
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
42817
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.If
                                                                                              arms: [
                                                                                                (if_arm
                                                                                                  cond: 
                                                                                                    (condition.Shell
                                                                                                      commands: [
                                                                                                        (command.Sentence
                                                                                                          child: 
                                                                                                            (C 
                                                                                                              {
                                                                                                                <
test
                                                                                                                >
                                                                                                              } {<-z>} {(DQ ($ Id.VSub_DollarName '$darwin_install_name'))}
                                                                                                            )
                                                                                                          terminator: 
                                                                                                            <
Id.Op_Semi _
                                                                                                            >
                                                                                                        )
                                                                                                      ]
                                                                                                    )
                                                                                                  action: [
                                                                                                    (command.ShAssignment
                                                                                                      pairs: [
                                                                                                        (assign_pair
                                                                                                          lhs: 
                                                                                                            (sh_lhs_expr.Name
                                                                                                              name: 
darwin_install_name
                                                                                                            )
                                                                                                          op: 
assign_op.Equal
                                                                                                          rhs: 
                                                                                                            {
                                                                                                              (command_sub
                                                                                                                left_token: 
                                                                                                                  <
Id.Left_Backtick '`'
                                                                                                                  >
                                                                                                                child: 
                                                                                                                  (command.Pipeline
                                                                                                                    children: [
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          ($ 
Id.VSub_DollarName '$OTOOL64'
                                                                                                                          )
                                                                                                                        } {<-L>} {($ Id.VSub_DollarName '$depdepl')}
                                                                                                                      )
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          <
awk
                                                                                                                          >
                                                                                                                        } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                                      )
                                                                                                                    ]
                                                                                                                    negated: 
F
                                                                                                                  )
                                                                                                              )
                                                                                                            }
                                                                                                          spids: [
42851
                                                                                                          ]
                                                                                                        )
                                                                                                      ]
                                                                                                    )
                                                                                                  ]
                                                                                                  spids: [
42837
42848
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
func_append
                                                                                                >
                                                                                              } {<compiler_flags>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  <
' '
                                                                                                  > ($ Id.VSub_DollarName '$wl') <'-dylib_file '> ($ Id.VSub_DollarName '$wl') 
                                                                                                  ($ 
Id.VSub_DollarName '$darwin_install_name'
                                                                                                  ) <':'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
func_append
                                                                                                >
                                                                                              } {<linker_flags>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  <
' -dylib_file '
                                                                                                  > ($ Id.VSub_DollarName '$darwin_install_name') <':'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
path
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: (word.Empty)
                                                                                                  spids: [
42901
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
42791
42806
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [42758 42769]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [42721 42726 42910 -1]
                                                                        )
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'>}
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: path
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {<-L> 
                                                                                      ($ 
Id.VSub_DollarName '$absdir'
                                                                                      ) <'/'> ($ Id.VSub_DollarName '$objdir')
                                                                                    }
                                                                                  spids: [42917]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [42913 42914 42924 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [42696 42711]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<eval>} 
                                                                  {<Id.Lit_VarLike 'libdir='> 
                                                                    (command_sub
                                                                      left_token: 
                                                                        <Id.Left_Backtick '`'>
                                                                      child: 
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$SED'
                                                                            )
                                                                          } {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$deplib')}
                                                                        )
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} {<-z>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$libdir'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<func_fatal_error>} 
                                                                      {
                                                                        (DQ <'\''> 
                                                                          ($ Id.VSub_DollarName 
'$deplib'
                                                                          ) <'\' is not a valid libtool archive'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$absdir'
                                                                          )
                                                                        )
                                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                                    )
                                                                    (C {<func_warning>} 
                                                                      {
                                                                        (DQ <'\''> 
                                                                          ($ Id.VSub_DollarName 
'$deplib'
                                                                          ) <'\' seems to be moved'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: path
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {<-L> 
                                                                          ($ Id.VSub_DollarName 
'$absdir'
                                                                          )
                                                                        }
                                                                      spids: [43007]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [42570 42572 43015 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$deplibs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> ($ Id.VSub_DollarName '$path') 
                                                                <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [43032 43039 43041 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$path') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                      )
                                                                    }
                                                                  spids: [43047]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [43044 43045 43054 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [42517 42531]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [42154 42167]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<link>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                              )
                                            }
                                          spids: [43113]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                              )
                                            }
                                          spids: [43121]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43097 43110]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:compiler_flags)
                                      op: assign_op.Equal
                                      rhs: 
                                        {(DQ ($ Id.VSub_DollarName '$compiler_flags') <' '>) 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (C {($ Id.VSub_DollarName '$SED')} 
                                                    {
                                                      (SQ 
                                                        <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                        >
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [43132]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [43081 43094]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$newdependency_libs')}
                          spids: [43169]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<dlpreopen>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: deplib
                              iter_words: [{($ Id.VSub_DollarName '$save_deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [43205]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [43173 43186]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<dlopen>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$pass'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<conv>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$pass'))}
                                )
                                (BraceGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib_search_path)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [43255]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$newlib_search_path')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: 
                                                {(DQ ($ Id.VSub_DollarName '$lib_search_path') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [43280 43287 43289 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<lib_search_path>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$dir'))}
                                                    )
                                                  ]
                                                  spids: [43292 43293 43304 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newlib_search_path)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [43313]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<prog> <Id.Lit_Comma ','> <link>} 
                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkmode') <','> ($ Id.VSub_DollarName '$pass'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:vars)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'compile_deplibs finalize_deplibs'>)}
                                          spids: [43340]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43320 43337]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vars)
                                      op: assign_op.Equal
                                      rhs: {<deplibs>}
                                      spids: [43349]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: var
                              iter_words: [{($ Id.VSub_DollarName '$vars')} {<dependency_libs>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'tmp_libs='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$var') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [43383]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$tmp_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$new_libs')
                                                              )
                                                            }
                                                          spids: [43433]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [43429 43431 43440 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                  spids: [43443 43445 43447 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName '$specialdeplibs') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: new_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '> ($ Id.VSub_DollarName '$new_libs')
                                                                      )
                                                                    }
                                                                  spids: [43530]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [43521 43528 43537 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$new_libs') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  spids: [43555 43562 43564 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: new_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$deplib'
                                                                                ) <' '> ($ Id.VSub_DollarName '$new_libs')
                                                                              )
                                                                            }
                                                                          spids: [43570]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [43567 43568 43577 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [43540 43541 43583 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [43450 43451 43589 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [43598]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$new_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$tmp_libs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [43636 43643 43645 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<tmp_libs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$deplib')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [43648 43649 43660 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [43620 43622 43666 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<tmp_libs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                  ]
                                                  spids: [43669 43670 43681 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (C {<eval>} 
                                      {($ Id.VSub_DollarName '$var') <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$tmp_libs') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [43219 43233]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<CXX>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$tagname'))})
                        (BraceGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host_os')}
                              arms: [
                                (case_arm
                                  pat_list: [{<linux> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    words: [{($ Id.VSub_DollarName '$CC')} {<-V>}]
                                                    redirects: [
                                                      (redir
                                                        op: <Id.Redir_GreatAnd '2>&'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<1>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                  (C {<sed>} {<5q>})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Sun> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                              ) <C> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_suncc_cstd_abi>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<no>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$suncc_use_cstd_abi'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<postdeps>} 
                                                      {(SQ <' -library=Cstd -library=Crun'>)}
                                                    )
                                                  ]
                                                  spids: [43777 43791]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [43762 43767 43806 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43735 43737 43812 -1]
                                )
                                (case_arm
                                  pat_list: [{<solaris> <Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_cc_basename>} {(DQ ($ Id.VSub_DollarName '$CC'))})
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$func_cc_basename_result')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<CC> <Id.Lit_Star '*'>}
                                            {<sunCC> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (C {<func_suncc_cstd_abi>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<no>} 
                                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$suncc_use_cstd_abi'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<postdeps>} 
                                                      {(SQ <' -library=Cstd -library=Crun'>)}
                                                    )
                                                  ]
                                                  spids: [43849 43863]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [43835 43842 43878 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43816 43818 43884 -1]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [43902]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: i
                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: 
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName '$predeps') <' '> 
                                    ($ Id.VSub_DollarName '$postdeps') <' '> ($ Id.VSub_DollarName '$compiler_lib_search_path') <' '>
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$i') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:i)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [43942]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43932 43939 43945 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$i'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_append>} {<tmp_libs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                    )
                                  ]
                                  spids: [43951 43962]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$tmp_libs')}
                          spids: [43981]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                              {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlfiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$newdlfiles')}
                          spids: [44007]
                        )
                      ]
                    )
                  ]
                  spids: [43991 44004]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<prog>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                )
                                (C {<test>} {<lib>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$linkmode'))}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlprefiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$newdlprefiles')}
                          spids: [44042]
                        )
                      ]
                    )
                  ]
                  spids: [44014 44039]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$linkmode')}
              arms: [
                (case_arm
                  pat_list: [{<oldlib>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$dlfiles') 
                                              ($ Id.VSub_DollarName '$dlprefiles')
                                            )
                                          }
                                        )
                                        (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$dlself'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<func_warning>} {(DQ <'\'-dlopen\' is ignored for archives'>)})]
                          spids: [44061 44086]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} {(DQ <'\'-l\' and \'-L\' are ignored for archives'>)})
                          ]
                          spids: [44110 44121 44130 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                        (C {<func_warning>} {(DQ <'\'-rpath\' is ignored for archives'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xrpath'))})
                        (C {<func_warning>} {(DQ <'\'-R\' is ignored for archives'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                        (C {<func_warning>} 
                          {(DQ <'\'-version-info/-version-number\' is ignored for archives'>)}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                        (C {<func_warning>} {(DQ <'\'-release\' is ignored for archives'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$export_symbols') 
                              ($ Id.VSub_DollarName '$export_symbols_regex')
                            )
                          }
                        )
                        (C {<func_warning>} {(DQ <'\'-export-symbols\' is ignored for archives'>)})
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [44242]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlibs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$output')}
                          spids: [44246]
                        )
                      ]
                    )
                    (C {<func_append>} {<objs>} {(DQ ($ Id.VSub_DollarName '$old_deplibs'))})
                  ]
                  spids: [44057 44058 44259 -1]
                )
                (case_arm
                  pat_list: [{<lib>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$outputname')}
                      arms: [
                        (case_arm
                          pat_list: [{<lib> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.la>)} 
                              {(DQ ($ Id.VSub_DollarName '$outputname'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [44298]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'shared_ext='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              }
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'libname='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              }
                            )
                          ]
                          spids: [44278 44280 44318 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$module'))}
                                )
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ <'libtool library \''> ($ Id.VSub_DollarName '$output') 
                                      <'\' must begin with \'lib\''>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$need_lib_prefix'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_stripname>} {(SQ )} {(SQ <.la>)} 
                                      {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [44384]
                                        )
                                      ]
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'shared_ext='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'libname='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                  ]
                                  spids: [44349 44363]
                                )
                              ]
                              else_action: [
                                (C {<func_stripname>} {(SQ )} {(SQ <.la>)} 
                                  {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libname)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                      spids: [44421]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [44321 44322 44428 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$objs'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<pass_all>} 
                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$deplibs_check_method'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ <'cannot build libtool library \''> 
                                          ($ Id.VSub_DollarName '$output') <'\' from non-libtool objects on this host:'> ($ Id.VSub_DollarName '$objs')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [44449 44463]
                                )
                              ]
                              else_action: [
                                (C {<echo>})
                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                  {
                                    (DQ <'*** Warning: Linking the shared library '> 
                                      ($ Id.VSub_DollarName '$output') <' against the non-libtool'>
                                    )
                                  }
                                )
                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                  {
                                    (DQ <'*** objects '> ($ Id.VSub_DollarName '$objs') 
                                      <' is not portable!'>
                                    )
                                  }
                                )
                                (C {<func_append>} {<libobjs>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$objs'))}
                                )
                              ]
                            )
                          ]
                          spids: [44435 44446]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<no>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dlself'))})
                        (C {<func_warning>} {(DQ <'\'-dlopen self\' is ignored for libtool libraries'>)})
                      ]
                    )
                    (C {<set>} {<dummy>} {($ Id.VSub_DollarName '$rpath')})
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<1>} {<-lt>} {(DQ ($ Id.VSub_Pound '$#'))})
                        (C {<func_warning>} 
                          {(DQ <'ignoring multiple \'-rpath\'s for a libtool library'>)}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_libdir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [44571]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [44576]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:oldlibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext') <' '> ($ Id.VSub_DollarName '$oldlibs')
                                              )
                                            }
                                          spids: [44625]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                          op: assign_op.Equal
                                          rhs: {<convenience>}
                                          spids: [44637]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:build_old_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [44641]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [44593 44606]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                                (C {<func_warning>} 
                                  {
                                    (DQ 
                                      <
'\'-version-info/-version-number\' is ignored for convenience libraries'
                                      >
                                    )
                                  }
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                                (C {<func_warning>} 
                                  {(DQ <'\'-release\' is ignored for convenience libraries'>)}
                                )
                              ]
                            )
                          ]
                          spids: [44579 44590]
                        )
                      ]
                      else_action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_ifs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$IFS')}
                                  spids: [44696]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:IFS)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [44700]
                            )
                          ]
                        )
                        (C {<set>} {<dummy>} {($ Id.VSub_DollarName '$vinfo')} {<0>} {<0>} {<0>})
                        (C {<shift>})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:IFS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$save_ifs')}
                              spids: [44720]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$7'))})
                            (C {<func_fatal_help>} {(DQ <'too many parameters to \'-version-info\''>)})
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$vinfo_number')}
                          arms: [
                            (case_arm
                              pat_list: [{<yes>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_major)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$1')}
                                      spids: [44769]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_minor)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$2')}
                                      spids: [44773]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_revision)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$3')}
                                      spids: [44777]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$version_type')}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {<darwin>}
                                        {<freebsd-elf>}
                                        {<linux>}
                                        {<osf>}
                                        {<windows>}
                                        {<none>}
                                      ]
                                      action: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$number_major')} 
                                          {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$number_minor')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:current)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [44843]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_minor')}
                                              spids: [44847]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_revision')}
                                              spids: [44851]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [44820 44831 44855 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<freebsd-aout>} {<qnx>} {<sunos>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:current)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_major')}
                                              spids: [44866]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_minor')}
                                              spids: [44870]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {<0>}
                                              spids: [44874]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [44858 44863 44878 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<irix>} {<nonstopux>}]
                                      action: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$number_major')} 
                                          {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$number_minor')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:current)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [44896]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_minor')}
                                              spids: [44900]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$number_minor')}
                                              spids: [44904]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:lt_irix_increment)
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                              spids: [44908]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [44881 44884 44912 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (C {<func_fatal_configuration>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$modename') 
                                              <': unknown library version type \''> ($ Id.VSub_DollarName '$version_type') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [44915 44916 44929 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [44765 44766 44935 -1]
                            )
                            (case_arm
                              pat_list: [{<no>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:current)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$1')}
                                      spids: [44942]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:revision)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$2')}
                                      spids: [44946]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:age)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number '$3')}
                                      spids: [44950]
                                    )
                                  ]
                                )
                              ]
                              spids: [44938 44939 44954 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$current')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [44972 45023 45025 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'CURRENT \''> ($ Id.VSub_DollarName '$current') 
                                      <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$vinfo') 
                                      <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [45028 45029 45050 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$revision')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [45064 45115 45117 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'REVISION \''> ($ Id.VSub_DollarName '$revision') 
                                      <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$vinfo') 
                                      <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [45120 45121 45142 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$age')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [45156 45207 45209 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'AGE \''> ($ Id.VSub_DollarName '$age') 
                                      <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$vinfo') 
                                      <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [45212 45213 45234 -1]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$age'))} {<-gt>} 
                                          {(DQ ($ Id.VSub_DollarName '$current'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'AGE \''> ($ Id.VSub_DollarName '$age') 
                                      <'\' is greater than the current interface number \''> ($ Id.VSub_DollarName '$current') <'\''>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'\''> ($ Id.VSub_DollarName '$vinfo') 
                                      <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [45241 45256]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:major)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [45287]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:versuffix)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [45290]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:verstring)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [45293]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$version_type')}
                          arms: [
                            (case_arm
                              pat_list: [{<none>}]
                              spids: [45303 45304 45306 -1]
                            )
                            (case_arm
                              pat_list: [{<darwin>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45331]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$major') <.> 
                                          ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45336]
                                    )
                                  ]
                                )
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} 
                                  {<Id.Lit_Other '+'>} {<1>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:minor_current)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45357]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:xlcverstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$wl') <'-compatibility_version '> 
                                            ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$minor_current') <' '> ($ Id.VSub_DollarName '$wl') <'-current_version '> 
                                            ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$minor_current') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [45361]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <'-compatibility_version '> 
                                            ($ Id.VSub_DollarName '$minor_current') <' -current_version '> ($ Id.VSub_DollarName '$minor_current') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [45377]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$CC')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<nagfor> <Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$wl') 
                                                    <'-compatibility_version '> ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$minor_current') <' '> ($ Id.VSub_DollarName '$wl') 
                                                    <'-current_version '> ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$minor_current') <.> 
                                                    ($ Id.VSub_DollarName '$revision')
                                                  )
                                                }
                                              spids: [45404]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45399 45401 45420 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <'-compatibility_version '> 
                                                    ($ Id.VSub_DollarName '$minor_current') <' -current_version '> ($ Id.VSub_DollarName '$minor_current') <.> ($ Id.VSub_DollarName '$revision')
                                                  )
                                                }
                                              spids: [45427]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45423 45424 45438 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [45310 45311 45444 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-aout>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45452]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName '$current') <.> 
                                          ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45457]
                                    )
                                  ]
                                )
                              ]
                              spids: [45448 45449 45464 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-elf>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45481]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$major') <.> 
                                          ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45486]
                                    )
                                  ]
                                )
                              ]
                              spids: [45468 45469 45494 -1]
                            )
                            (case_arm
                              pat_list: [{<irix>} {<nonstopux>}]
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$lt_irix_increment'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                          {($ Id.VSub_DollarName '$age')}
                                        )
                                      ]
                                      spids: [45506 45519]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                      {($ Id.VSub_DollarName '$age')} {<Id.Lit_Other '+'>} {<1>}
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45550]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$version_type')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<nonstopux>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring_prefix)
                                              op: assign_op.Equal
                                              rhs: {<nonstopux>}
                                              spids: [45565]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45562 45563 45568 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring_prefix)
                                              op: assign_op.Equal
                                              rhs: {<sgi>}
                                              spids: [45574]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45571 45572 45577 -1]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$verstring_prefix') 
                                          ($ Id.VSub_DollarName '$major') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45583]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$revision')}
                                      spids: [45595]
                                    )
                                  ]
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<0>} {<-ne>} 
                                              {(DQ ($ Id.VSub_DollarName '$loop'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$revision')} {<->} 
                                          {($ Id.VSub_DollarName '$loop')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:iface)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [45624]
                                            )
                                          ]
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$loop')} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:loop)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [45637]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$verstring_prefix') 
                                                  ($ Id.VSub_DollarName '$major') <.> ($ Id.VSub_DollarName '$iface') <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$verstring')
                                                }
                                              spids: [45641]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$major')}
                                      spids: [45658]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$major') <.> 
                                          ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45663]
                                    )
                                  ]
                                )
                              ]
                              spids: [45498 45503 45669 -1]
                            )
                            (case_arm
                              pat_list: [{<linux>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45689]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$major') <.> 
                                          ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45694]
                                    )
                                  ]
                                )
                              ]
                              spids: [45673 45674 45702 -1]
                            )
                            (case_arm
                              pat_list: [{<osf>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45719]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName '$current') <.> 
                                          ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45724]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$current') <.> 
                                          ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45733]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$age')}
                                      spids: [45746]
                                    )
                                  ]
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<0>} {<-ne>} 
                                              {(DQ ($ Id.VSub_DollarName '$loop'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                          {($ Id.VSub_DollarName '$loop')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:iface)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [45775]
                                            )
                                          ]
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$loop')} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:loop)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [45788]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$verstring') 
                                                  <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$iface') <.0>
                                                }
                                              spids: [45792]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (C {<func_append>} {<verstring>} 
                                  {(DQ <':'> ($ Id.VSub_DollarName '$current') <.0>)}
                                )
                              ]
                              spids: [45706 45707 45818 -1]
                            )
                            (case_arm
                              pat_list: [{<qnx>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45826]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45831]
                                    )
                                  ]
                                )
                              ]
                              spids: [45822 45823 45836 -1]
                            )
                            (case_arm
                              pat_list: [{<sco>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45844]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45849]
                                    )
                                  ]
                                )
                              ]
                              spids: [45840 45841 45854 -1]
                            )
                            (case_arm
                              pat_list: [{<sunos>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$current')}
                                      spids: [45862]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName '$current') <.> 
                                          ($ Id.VSub_DollarName '$revision')
                                        }
                                      spids: [45867]
                                    )
                                  ]
                                )
                              ]
                              spids: [45858 45859 45874 -1]
                            )
                            (case_arm
                              pat_list: [{<windows>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [45899]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {<-> ($ Id.VSub_DollarName '$major')}
                                      spids: [45903]
                                    )
                                  ]
                                )
                              ]
                              spids: [45878 45879 45908 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_fatal_configuration>} 
                                  {
                                    (DQ <'unknown library version type \''> 
                                      ($ Id.VSub_DollarName '$version_type') <'\''>
                                    )
                                  }
                                )
                              ]
                              spids: [45912 45913 45925 -1]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [45960]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$version_type')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<darwin>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [45982]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45970 45971 45985 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: {<0.0>}
                                              spids: [45992]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [45988 45989 45996 -1]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$need_version'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:versuffix)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [46018]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [46002 46015]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:versuffix)
                                          op: assign_op.Equal
                                          rhs: {<.0.0>}
                                          spids: [46024]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                              spids: [45936 45957]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<yes> <Id.Lit_Comma ','> <no>} 
                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$avoid_version') <','> ($ Id.VSub_DollarName '$need_version'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [46059]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [46062]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [46065]
                                    )
                                  ]
                                )
                              ]
                              spids: [46039 46056]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$allow_undefined'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<unsupported>} {<Id.Lit_Equals '='>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$allow_undefined_flag')
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$build_old_libs')
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<func_warning>} 
                                                  {
                                                    (DQ <'undefined symbols not allowed in '> 
                                                      ($ Id.VSub_DollarName '$host') <' shared libraries; building static only'>
                                                    )
                                                  }
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                      spids: [46133]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [46108 46121]
                                            )
                                          ]
                                          else_action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'can\'t build '> ($ Id.VSub_DollarName '$host') 
                                                  <
' shared library unless -no-undefined is specified'
                                                  >
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [46092 46105]
                                    )
                                  ]
                                )
                              ]
                              spids: [46076 46089]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:allow_undefined_flag)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$no_undefined_flag')}
                                  spids: [46162]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_generate_dlsyms>} {(DQ ($ Id.VSub_DollarName '$libname'))} 
                      {(DQ ($ Id.VSub_DollarName '$libname'))} {<Id.Lit_Colon ':'>}
                    )
                    (C {<func_append>} {<libobjs>} {(DQ <' '> ($ Id.VSub_DollarName '$symfileobj'))})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ <' '>)} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:libobjs)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [46211]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<relink>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:removelist)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [46240]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tempremovelist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                            {(DQ ($ Id.VSub_DollarName '$output_objdir') <'/*'>)}
                                          )
                                      )
                                    }
                                  spids: [46243]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: p
                              iter_words: [{($ Id.VSub_DollarName '$tempremovelist')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$p')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                                            {<Id.Lit_Star '*'> <.gcno>}
                                          ]
                                          spids: [46275 46283 46286 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$outputname')
                                            }
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.> <Id.Lit_Star '*'>
                                            }
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') ($ Id.VSub_DollarName '$release') <.> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$precious_files_regex'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Pipeline
                                                                  children: [
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName '$ECHO')
                                                                      } {(DQ ($ Id.VSub_DollarName '$p'))}
                                                                    )
                                                                    (command.Simple
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$EGREP'
                                                                          )
                                                                        }
                                                                        {<-e>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$precious_files_regex'
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: {<'/dev/null'>}
                                                                        )
                                                                        (redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '2>&'>
                                                                          loc: (redir_loc.Fd fd:2)
                                                                          arg: {<1>}
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  negated: F
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [46326 46351]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [46312 46323]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<removelist>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$p'))}
                                            )
                                          ]
                                          spids: [46289 46309 46373 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          spids: [46376 46377 46379 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$removelist'))})
                                (C {<func_show_eval>} 
                                  {
                                    (DQ (${ Id.VSub_Name RM) <'r '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <removelist>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [46215 46229]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                        )
                                        (C {<test>} {<convenience>} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_append>} {<oldlibs>} 
                              {
                                (DQ <' '> ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                  ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext')
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName '$objs') <' '>) 
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (DQ <'/'> <Id.Lit_BadBackslash '\\'> <.> 
                                                    ($ Id.VSub_DollarName '$libext') <Id.Lit_Dollar '$'> <'/d; '> ($ Id.VSub_DollarName '$lo2o')
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [46468]
                                )
                              ]
                            )
                          ]
                          spids: [46420 46446]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xrpath'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:temp_xrpath)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [46555]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: libdir
                              iter_words: [{($ Id.VSub_DollarName '$xrpath')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_replace_sysroot>} {(DQ ($ Id.VSub_DollarName '$libdir'))})
                                    (C {<func_append>} {<temp_xrpath>} 
                                      {
                                        (DQ <' -R'> 
                                          ($ Id.VSub_DollarName '$func_replace_sysroot_result')
                                        )
                                      }
                                    )
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$finalize_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46597 46604 46606 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<finalize_rpath>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [46609 46610 46621 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<yes>} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$hardcode_into_libs'))}
                                                )
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$temp_xrpath') <' '> 
                                                ($ Id.VSub_DollarName '$dependency_libs')
                                              )
                                            }
                                          spids: [46659]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46630 46656]
                                )
                              ]
                            )
                          ]
                          spids: [46537 46548]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_dlfiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$dlfiles')}
                          spids: [46678]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlfiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [46682]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: lib
                      iter_words: [{($ Id.VSub_DollarName '$old_dlfiles')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: 
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                    ($ Id.VSub_DollarName '$dlfiles') <' '>
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$lib') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [46710 46717 46719 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<dlfiles>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$lib'))}
                                    )
                                  ]
                                  spids: [46722 46723 46734 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_dlprefiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$dlprefiles')}
                          spids: [46748]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlprefiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [46752]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: lib
                      iter_words: [{($ Id.VSub_DollarName '$old_dlprefiles')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$dlprefiles') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$lib') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [46777 46784 46786 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<dlprefiles>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$lib'))}
                                    )
                                  ]
                                  spids: [46789 46790 46801 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-beos> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46848 46899 46906 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                              <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_append>} {<deplibs>} {(DQ <' System.ltframework'>)})
                                          ]
                                          spids: [46909 46924 46940 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-netbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46943 46948 46955 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46958 46979 46986 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco3.2v5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco5v6> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46989 47002 47009 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv4.2uw2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-unixware> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-OpenUNIX> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [47012 47041 47048 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$build_libtool_need_lc'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<deplibs>} {(DQ <' -lc'>)})
                                                  ]
                                                  spids: [47059 47072]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [47051 47052 47087 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46827 46838]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$name')}
                                  spids: [47101]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libname_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libname')}
                                  spids: [47105]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$release')}
                                  spids: [47109]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$versuffix')}
                                  spids: [47113]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$major')}
                                  spids: [47117]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [47133]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [47136]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [47139]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:newdeplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [47142]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:droppeddeps)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [47145]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplibs_check_method')}
                              arms: [
                                (case_arm
                                  pat_list: [{<pass_all>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$deplibs')}
                                          spids: [47180]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47156 47157 47184 -1]
                                )
                                (case_arm
                                  pat_list: [{<test_compile>}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {($ Id.VSub_DollarName '$RM')} {<conftest.c>})
                                      ]
                                    )
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<conftest.c>}
                                        )
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<EOF>}
                                              here_end_span_id: 47227
                                              stdin_parts: [<'\t  int main() { return 0; }\n'>]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {($ Id.VSub_DollarName '$RM')} {<conftest>})
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {($ Id.VSub_DollarName '$LTCC')} 
                                                      {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {<conftest>} {<conftest.c>} {($ Id.VSub_DollarName '$deplibs')}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:ldd_output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: (C {<ldd>} {<conftest>})
                                                      )
                                                    }
                                                  spids: [47256]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: i
                                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$i')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {<-l>} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$i'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                      )
                                                                    }
                                                                  spids: [47302]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<yes>} 
                                                                              {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$allow_libtool_libs_with_static_runtimes'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.Case
                                                                      to_match: 
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
'$predeps'
                                                                            ) <' '> ($ Id.VSub_DollarName '$postdeps') <' '>
                                                                          )
                                                                        }
                                                                      arms: [
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'> 
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName '$i'
                                                                                ) <' '>
                                                                              ) <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (C {<func_append>} 
                                                                              {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (word.Empty)
                                                                                  spids: [47355]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [47335 47342 47358 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [47306 47319]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$i'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: libname
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (C {<eval>} 
                                                                                    {
                                                                                      (DQ 
                                                                                        (word_part.EscapedLiteral
                                                                                          token: 
                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                            >
                                                                                        ) <'ECHO '>
                                                                                      ) ($ Id.VSub_DollarName '$libname_spec') (DQ )
                                                                                    }
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [47381]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: deplib_matches
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (C {<eval>} 
                                                                                    {
                                                                                      (DQ 
                                                                                        (word_part.EscapedLiteral
                                                                                          token: 
                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                            >
                                                                                        ) <'ECHO '>
                                                                                      ) ($ Id.VSub_DollarName '$library_names_spec') (DQ )
                                                                                    }
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [47403]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<set>} {<dummy>} 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$deplib_matches'
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                    (C {<shift>})
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: deplib_match
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {($ Id.VSub_Number '$1')}
                                                                          spids: [47435]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {
                                                                                        (command_sub
                                                                                          left_token: 
                                                                                            <
Id.Left_Backtick '`'
                                                                                            >
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
expr
                                                                                                >
                                                                                              } {(DQ ($ Id.VSub_DollarName '$ldd_output'))} {<Id.Lit_Colon ':'>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  <
'.*'
                                                                                                  > ($ Id.VSub_DollarName '$deplib_match')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                        )
                                                                                      } {<-ne>} {<0>}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (C {<func_append>} 
                                                                              {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                                            )
                                                                          ]
                                                                          spids: [47439 47465]
                                                                        )
                                                                      ]
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: droppeddeps
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<yes>}
                                                                              spids: [47481]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (C {<echo>})
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$ECHO'
                                                                            )
                                                                          } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName '$i') <.>)}
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** I have the capability to make that library automatically link in when'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** you link to this library.  But I can only do this if you have a'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** shared version of the library, which I believe you do not have'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** because a test_compile did reveal that the linker did not use it for'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** its dynamic dependency list that programs get resolved with at runtime.'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [47367 47378]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [47285 47287 47538 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<newdeplibs>} 
                                                              {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                            )
                                                          ]
                                                          spids: [47541 47542 47555 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [47238 47253]
                                        )
                                      ]
                                      else_action: [
                                        (command.ForEach
                                          iter_name: i
                                          iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$i')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_stripname>} {<-l>} {(SQ )} 
                                                          {(DQ ($ Id.VSub_DollarName '$i'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:name)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                  )
                                                                }
                                                              spids: [47611]
                                                            )
                                                          ]
                                                        )
                                                        (command.AndOr
                                                          ops: [Id.Op_DPipe]
                                                          children: [
                                                            (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                            (C {($ Id.VSub_DollarName '$RM')} 
                                                              {<conftest>}
                                                            )
                                                          ]
                                                        )
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$LTCC'
                                                                            )
                                                                          } {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {<conftest>} {<conftest.c>} {($ Id.VSub_DollarName '$i')}
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: ldd_output
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (command_sub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (C {<ldd>} {<conftest>})
                                                                          )
                                                                        }
                                                                      spids: [47642]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: 
                                                                        (condition.Shell
                                                                          commands: [
                                                                            (command.Sentence
                                                                              child: 
                                                                                (C {<test>} {<yes>} 
                                                                                  {
                                                                                    <Id.Lit_Equals 
'='
                                                                                    >
                                                                                  } {(DQ ($ Id.VSub_DollarName '$allow_libtool_libs_with_static_runtimes'))}
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                        )
                                                                      action: [
                                                                        (command.Case
                                                                          to_match: 
                                                                            {
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName '$predeps'
                                                                                ) <' '> ($ Id.VSub_DollarName '$postdeps') <' '>
                                                                              )
                                                                            }
                                                                          arms: [
                                                                            (case_arm
                                                                              pat_list: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName '$i'
                                                                                    ) <' '>
                                                                                  ) <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                              action: [
                                                                                (C {<func_append>} 
                                                                                  {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: i
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: (word.Empty)
                                                                                      spids: [47701]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              spids: [
47681
47688
47704
-1
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                      spids: [47652 47665]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: 
                                                                        (condition.Shell
                                                                          commands: [
                                                                            (command.Sentence
                                                                              child: 
                                                                                (C {<test>} {<-n>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$i'
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                        )
                                                                      action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: libname
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (command_sub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (C {<eval>} 
                                                                                        {
                                                                                          (DQ 
                                                                                            (word_part.EscapedLiteral
                                                                                              token: 
                                                                                                <
Id.Lit_EscapedChar '\\$'
                                                                                                >
                                                                                            ) <'ECHO '>
                                                                                          ) ($ Id.VSub_DollarName '$libname_spec') (DQ )
                                                                                        }
                                                                                      )
                                                                                  )
                                                                                }
                                                                              spids: [47727]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: 
deplib_matches
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (command_sub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (C {<eval>} 
                                                                                        {
                                                                                          (DQ 
                                                                                            (word_part.EscapedLiteral
                                                                                              token: 
                                                                                                <
Id.Lit_EscapedChar '\\$'
                                                                                                >
                                                                                            ) <'ECHO '>
                                                                                          ) ($ Id.VSub_DollarName '$library_names_spec') (DQ )
                                                                                        }
                                                                                      )
                                                                                  )
                                                                                }
                                                                              spids: [47749]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<set>} {<dummy>} 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$deplib_matches'
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                        (C {<shift>})
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: deplib_match
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  ($ Id.VSub_Number 
'$1'
                                                                                  )
                                                                                }
                                                                              spids: [47781]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.If
                                                                          arms: [
                                                                            (if_arm
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (C {<test>} 
                                                                                          {
                                                                                            (command_sub
                                                                                              left_token: 
                                                                                                <
Id.Left_Backtick '`'
                                                                                                >
                                                                                              child: 
                                                                                                (C 
                                                                                                  {
                                                                                                    <
expr
                                                                                                    >
                                                                                                  } {(DQ ($ Id.VSub_DollarName '$ldd_output'))} {<Id.Lit_Colon ':'>} 
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      <
'.*'
                                                                                                      > ($ Id.VSub_DollarName '$deplib_match')
                                                                                                    )
                                                                                                  }
                                                                                                )
                                                                                            )
                                                                                          } {<-ne>} {<0>}
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              action: [
                                                                                (C {<func_append>} 
                                                                                  {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                                                )
                                                                              ]
                                                                              spids: [47785 47811]
                                                                            )
                                                                          ]
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: 
droppeddeps
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<yes>}
                                                                                  spids: [47827]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (C {<echo>})
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$ECHO'
                                                                                )
                                                                              } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName '$i') <.>)}
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** because a test_compile did reveal that the linker did not use this one'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** as a dynamic dependency that programs can get resolved with at runtime.'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                      spids: [47713 47724]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              spids: [47624 47639]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [47887]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ <'*** Warning!  Library '> 
                                                                  ($ Id.VSub_DollarName '$i') <' is needed by this library but I was not able to'>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** make it link in!  You will probably need to install it or some'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** library that it depends on before this library will be fully'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** functional.  Installing it before continuing would be even better.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [47594 47596 47927 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_append>} {<newdeplibs>} 
                                                          {(DQ <' '> ($ Id.VSub_DollarName '$i'))}
                                                        )
                                                      ]
                                                      spids: [47930 47931 47944 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47187 47188 47956 -1]
                                )
                                (case_arm
                                  pat_list: [{<file_magic> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (C {<set>} {<dummy>} 
                                          {($ Id.VSub_DollarName '$deplibs_check_method')}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file_magic_regex)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<expr>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$deplibs_check_method')
                                                      )
                                                    } {<Id.Lit_Colon ':'>} 
                                                    {
                                                      (DQ ($ Id.VSub_Number '$1') <' '> 
                                                        <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                              )
                                            }
                                          spids: [47974]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: a_deplib
                                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$a_deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {<-l>} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:name)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                              )
                                                            }
                                                          spids: [48037]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$allow_libtool_libs_with_static_runtimes'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$predeps') <' '> ($ Id.VSub_DollarName '$postdeps') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$a_deplib'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (C {<func_append>} {<newdeplibs>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (word.Empty)
                                                                          spids: [48090]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [48070 48077 48093 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [48041 48054]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: libname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {<eval>} 
                                                                            {
                                                                              (DQ 
                                                                                (word_part.EscapedLiteral
                                                                                  token: 
                                                                                    <
Id.Lit_EscapedChar '\\$'
                                                                                    >
                                                                                ) <'ECHO '>
                                                                              ) ($ Id.VSub_DollarName '$libname_spec') (DQ )
                                                                            }
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [48116]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$file_magic_glob'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: libnameglob
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (C 
                                                                                        {
                                                                                          <
func_echo_all
                                                                                          >
                                                                                        } {(DQ ($ Id.VSub_DollarName '$libname'))}
                                                                                      )
                                                                                      (C 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$SED'
                                                                                          )
                                                                                        } {<-e>} {($ Id.VSub_DollarName '$file_magic_glob')}
                                                                                      )
                                                                                    ]
                                                                                    negated: F
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [48152]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [48138 48149]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: libnameglob
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$libname'
                                                                          )
                                                                        }
                                                                      spids: [48175]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<yes>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$want_nocaseglob'))}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: nocaseglob
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (command_sub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (C {<shopt>} {<-p>} 
                                                                                {<nocaseglob>}
                                                                              )
                                                                          )
                                                                        }
                                                                      spids: [48194]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.ForEach
                                                              iter_name: i
                                                              iter_words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$sys_lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$shlib_search_path'
                                                                  )
                                                                }
                                                              ]
                                                              do_arg_iter: F
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} {<yes>} 
                                                                                      {
                                                                                        <
Id.Lit_Equals '='
                                                                                        >
                                                                                      } {(DQ ($ Id.VSub_DollarName '$want_nocaseglob'))}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (C {<shopt>} {<-s>} 
                                                                              {<nocaseglob>}
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: 
potential_libs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (command_sub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            words: [
                                                                                              {<ls>}
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName '$i'
                                                                                                ) <'/'> ($ Id.VSub_DollarName '$libnameglob') <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> 
                                                                                                <
Id.Lit_Star '*'
                                                                                                >
                                                                                              }
                                                                                            ]
                                                                                            redirects: [
                                                                                              (redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Great '2>'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
2
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    <
'/dev/null'
                                                                                                    >
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                      )
                                                                                    }
                                                                                  spids: [48245]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$nocaseglob'
                                                                                )
                                                                              }
                                                                            )
                                                                          ]
                                                                          spids: [48222 48235]
                                                                        )
                                                                      ]
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: 
potential_libs
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (command_sub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Simple
                                                                                        words: [
                                                                                          {<ls>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName '$i'
                                                                                            ) <'/'> ($ Id.VSub_DollarName '$libnameglob') <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          }
                                                                                        ]
                                                                                        redirects: [
                                                                                          (redir
                                                                                            op: 
                                                                                              <
Id.Redir_Great '2>'
                                                                                              >
                                                                                            loc: 
                                                                                              (redir_loc.Fd
                                                                                                fd: 
2
                                                                                              )
                                                                                            arg: 
                                                                                              {
                                                                                                <
'/dev/null'
                                                                                                >
                                                                                              }
                                                                                          )
                                                                                        ]
                                                                                        do_fork: T
                                                                                      )
                                                                                  )
                                                                                }
                                                                              spids: [48270]
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ForEach
                                                                      iter_name: potent_lib
                                                                      iter_words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$potential_libs'
                                                                          )
                                                                        }
                                                                      ]
                                                                      do_arg_iter: F
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
ls
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
-lLd
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$GREP'
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        <
' -> '
                                                                                                        >
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [48308 48334]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                      )
                                                                                    }
                                                                                  spids: [48363]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (command.Simple
                                                                                          words: [
                                                                                            {<test>}
                                                                                            {<-h>}
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$potlib'
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  children: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
potliblink
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (command_sub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Pipeline
                                                                                                    children: [
                                                                                                      (C 
                                                                                                        {
                                                                                                          <
ls
                                                                                                          >
                                                                                                        } {<-ld>} {($ Id.VSub_DollarName '$potlib')}
                                                                                                      )
                                                                                                      (C 
                                                                                                        {
                                                                                                          ($ 
Id.VSub_DollarName '$SED'
                                                                                                          )
                                                                                                        } {(SQ <'s/.* -> //'>)}
                                                                                                      )
                                                                                                    ]
                                                                                                    negated: 
F
                                                                                                  )
                                                                                              )
                                                                                            }
                                                                                          spids: [
48384
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      to_match: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$potliblink'
                                                                                          )
                                                                                        }
                                                                                      arms: [
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_LBracket '['
                                                                                              > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                                                                                              <
Id.Lit_Star '*'
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
Id.Lit_LBracket '['
                                                                                              > <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                                              (word_part.EscapedLiteral
                                                                                                token: 
                                                                                                  <
Id.Lit_EscapedChar '\\\\'
                                                                                                  >
                                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$potliblink'
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
48430
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
48411
48428
48432
-1
                                                                                          ]
                                                                                        )
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_Star '*'
                                                                                              >
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName '$ECHO'
                                                                                                                  )
                                                                                                                } {(DQ ($ Id.VSub_DollarName '$potlib'))}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName '$SED'
                                                                                                                  )
                                                                                                                } {(SQ <'s|[^/]*$||'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                          )
                                                                                                      ) (DQ ($ Id.VSub_DollarName '$potliblink'))
                                                                                                    }
                                                                                                  spids: [
48438
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
48435
48436
48459
-1
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
eval
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$file_magic_cmd'
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (word_part.EscapedLiteral
                                                                                                        token: 
                                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                                          >
                                                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <potlib> 
                                                                                                      (word_part.EscapedLiteral
                                                                                                        token: 
                                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (C 
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName '$SED'
                                                                                                    )
                                                                                                  } {<-e>} {<10q>}
                                                                                                )
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$EGREP'
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$file_magic_regex'
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (C {<func_append>} 
                                                                                      {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$a_deplib'))}
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (word.Empty)
                                                                                          spids: [
48518
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [48468 48505]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [48102 48113]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [48552]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName '$a_deplib') <.>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because I did check the linker path looking for a file starting'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-z>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$potlib'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName '$ECHO')
                                                                      } 
                                                                      {
                                                                        (DQ <'*** with '> 
                                                                          ($ Id.VSub_DollarName 
'$libname'
                                                                          ) <' but no candidates were found. (...for file magic test)'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [48596 48607]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ <'*** with '> 
                                                                      ($ Id.VSub_DollarName 
'$libname'
                                                                      ) <' and none of the candidates passed a file format test'>
                                                                    )
                                                                  }
                                                                )
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ 
                                                                      <
'*** using a file magic. Last file checked: '
                                                                      > ($ Id.VSub_DollarName '$potlib')
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [48538 48549]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [48020 48022 48645 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<newdeplibs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                  ]
                                                  spids: [48648 48649 48666 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [47959 47961 48678 -1]
                                )
                                (case_arm
                                  pat_list: [{<match_pattern> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (C {<set>} {<dummy>} 
                                          {($ Id.VSub_DollarName '$deplibs_check_method')}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:match_pattern_regex)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<expr>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$deplibs_check_method')
                                                      )
                                                    } {<Id.Lit_Colon ':'>} 
                                                    {
                                                      (DQ ($ Id.VSub_Number '$1') <' '> 
                                                        <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                              )
                                            }
                                          spids: [48696]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: a_deplib
                                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$a_deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {<-l>} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:name)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                              )
                                                            }
                                                          spids: [48759]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$allow_libtool_libs_with_static_runtimes'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$predeps') <' '> ($ Id.VSub_DollarName '$postdeps') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$a_deplib'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (C {<func_append>} {<newdeplibs>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (word.Empty)
                                                                          spids: [48812]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [48792 48799 48815 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [48763 48776]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: libname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {<eval>} 
                                                                            {
                                                                              (DQ 
                                                                                (word_part.EscapedLiteral
                                                                                  token: 
                                                                                    <
Id.Lit_EscapedChar '\\$'
                                                                                    >
                                                                                ) <'ECHO '>
                                                                              ) ($ Id.VSub_DollarName '$libname_spec') (DQ )
                                                                            }
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [48838]
                                                                )
                                                              ]
                                                            )
                                                            (command.ForEach
                                                              iter_name: i
                                                              iter_words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$sys_lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$shlib_search_path'
                                                                  )
                                                                }
                                                              ]
                                                              do_arg_iter: F
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: potential_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    words: [
                                                                                      {<ls>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$i'
                                                                                        ) <'/'> ($ Id.VSub_DollarName '$libname') <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '2>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [48876]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ForEach
                                                                      iter_name: potent_lib
                                                                      iter_words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$potential_libs'
                                                                          )
                                                                        }
                                                                      ]
                                                                      do_arg_iter: F
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                      )
                                                                                    }
                                                                                  spids: [48907]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
eval
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (word_part.EscapedLiteral
                                                                                                          token: 
                                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                                            >
                                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                                                                                        ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (C 
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName '$SED'
                                                                                                    )
                                                                                                  } {<10q>}
                                                                                                )
                                                                                                (command.Simple
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$EGREP'
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$match_pattern_regex'
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (C {<func_append>} 
                                                                                      {<newdeplibs>} {(DQ <' '> ($ Id.VSub_DollarName '$a_deplib'))}
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (word.Empty)
                                                                                          spids: [
48963
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [48914 48950]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [48824 48835]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$a_deplib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [48997]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName '$a_deplib') <.>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because I did check the linker path looking for a file starting'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-z>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$potlib'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName '$ECHO')
                                                                      } 
                                                                      {
                                                                        (DQ <'*** with '> 
                                                                          ($ Id.VSub_DollarName 
'$libname'
                                                                          ) <' but no candidates were found. (...for regex pattern test)'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [49041 49052]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ <'*** with '> 
                                                                      ($ Id.VSub_DollarName 
'$libname'
                                                                      ) <' and none of the candidates passed a file format test'>
                                                                    )
                                                                  }
                                                                )
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ 
                                                                      <
'*** using a regex pattern. Last file checked: '
                                                                      > ($ Id.VSub_DollarName '$potlib')
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [48983 48994]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [48742 48744 49090 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_append>} {<newdeplibs>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                  ]
                                                  spids: [49093 49094 49111 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [48681 48683 49123 -1]
                                )
                                (case_arm
                                  pat_list: [{<none>} {<unknown>} {<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [49138]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s/ -lc$//; s/ -[LR][^ ]*//g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [49141]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$allow_libtool_libs_with_static_runtimes'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_name: i
                                              iter_words: [
                                                {($ Id.VSub_DollarName '$predeps')}
                                                {($ Id.VSub_DollarName '$postdeps')}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$ECHO'
                                                                          )
                                                                        } {(DQ <' '> ($ Id.VSub_DollarName '$tmp_deplibs'))}
                                                                      )
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$SED'
                                                                          )
                                                                        } {(DQ <'s|'> ($ Id.VSub_DollarName '$i') <'||'>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                              )
                                                            }
                                                          spids: [49196]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [49162 49175]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$tmp_deplibs')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\t'>
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<echo>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<none>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$deplibs_check_method'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** Warning: inter-library dependencies are not supported in this platform.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [49245 49258]
                                                )
                                              ]
                                              else_action: [
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** Warning: inter-library dependencies are not known to be supported.'
                                                      >
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** All declared inter-library dependencies are being dropped.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:droppeddeps)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [49288]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [49232 49239 49292 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [49126 49135 49298 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$versuffix_save')}
                                  spids: [49304]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$major_save')}
                                  spids: [49308]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$release_save')}
                                  spids: [49312]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libname)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libname_save')}
                                  spids: [49316]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$name_save')}
                                  spids: [49320]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                      <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                      <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName '$newdeplibs')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s/ -lc / System.ltframework /'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [49354]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [49332 49347 49375 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$droppeddeps'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$module'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<echo>})
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** Warning: libtool could not satisfy all declared inter-library'
                                                  >
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ <'*** dependencies of module '> 
                                                  ($ Id.VSub_DollarName '$libname') <'.  Therefore, libtool will create'>
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** a static module, that should work as long as the dlopening'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** application is linked with the -dlopen flag.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$global_symbol_pipe'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<echo>})
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** However, this would only work if libtool was able to extract symbol'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** lists from a program, using \'nm\' or equivalent, but libtool could'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** not find such a program.  So, this module is probably useless.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** \'nm\' from GNU binutils and a full rebuild may help.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [49447 49458]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$build_old_libs'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:oldlibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName '$output_objdir') 
                                                              <'/'> ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext')
                                                            }
                                                          spids: [49511]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<module>}
                                                          spids: [49519]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:build_old_libs)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [49523]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [49495 49508]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                      spids: [49530]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [49398 49411]
                                        )
                                      ]
                                      else_action: [
                                        (C {<echo>} 
                                          {
                                            (DQ 
                                              <
'*** The inter-library dependencies that have been dropped here will be'
                                              >
                                            )
                                          }
                                        )
                                        (C {<echo>} 
                                          {
                                            (DQ 
                                              <
'*** automatically added whenever a program is linked with this library'
                                              >
                                            )
                                          }
                                        )
                                        (C {<echo>} {(DQ <'*** or is declared to -dlopen it.'>)})
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$allow_undefined'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<echo>})
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** Since this library must not contain undefined symbols,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** because either the platform does not support them or'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** it was explicitly requested with -no-undefined,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** libtool will only create a static version of it.'
                                                      >
                                                    )
                                                  }
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$build_old_libs'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:oldlibs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext')
                                                                }
                                                              spids: [49625]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<module>}
                                                              spids: [49633]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_old_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<yes>}
                                                              spids: [49637]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [49609 49622]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [49644]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [49562 49575]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [49382 49395]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$newdeplibs')}
                                  spids: [49664]
                                )
                              ]
                            )
                          ]
                          spids: [46811 46824]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:newdeplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$newdeplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [49690]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:new_inherited_linker_flags)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                    )
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [49717]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [49744]
                                )
                              ]
                            )
                          ]
                          spids: [49682 49687 49771 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:new_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [49786]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: path
                      iter_words: [{($ Id.VSub_DollarName '$notinst_path')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                        ($ Id.VSub_DollarName '$objdir') <' '>
                                      ) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [49812 49821 49823 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$deplibs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                                ($ Id.VSub_DollarName '$objdir') <' '>
                                              ) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_append>} {<new_libs>} 
                                              {
                                                (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                                  ($ Id.VSub_DollarName '$objdir')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [49841 49850 49864 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [49826 49827 49870 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplib')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [49914 49921 49923 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<new_libs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                          ]
                                          spids: [49926 49927 49938 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [49898 49900 49944 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<new_libs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                    )
                                  ]
                                  spids: [49947 49948 49959 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:deplibs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$new_libs')}
                          spids: [49968]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:library_names)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [49977]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_library)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [49980]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlname)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [49983]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$archive_cmds')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <LD> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:wl)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [50029]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50022 50027 50031 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$hardcode_into_libs'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:hardcode_libdirs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [50057]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dep_rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [50060]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$finalize_rpath')}
                                          spids: [50063]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:rpath)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$compile_rpath') 
                                                  ($ Id.VSub_DollarName '$rpath')
                                                }
                                              spids: [50079]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: libdir
                                      iter_words: [{($ Id.VSub_DollarName '$rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_libdir_flag_spec'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<func_replace_sysroot>} 
                                                              {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_replace_sysroot_result'
                                                                      )
                                                                    }
                                                                  spids: [50131]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-z>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$hardcode_libdirs'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: hardcode_libdirs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$libdir'
                                                                              )
                                                                            }
                                                                          spids: [50149]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [50135 50146]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.Case
                                                                  to_match: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                                    }
                                                                  arms: [
                                                                    (case_arm
                                                                      pat_list: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                      spids: [50169 50176 50179 -1]
                                                                    )
                                                                    (case_arm
                                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                                      action: [
                                                                        (C {<func_append>} 
                                                                          {<hardcode_libdirs>} {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_separator') ($ Id.VSub_DollarName '$libdir'))}
                                                                        )
                                                                      ]
                                                                      spids: [50182 50183 50196 -1]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [50110 50121]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<eval>} 
                                                          {<Id.Lit_VarLike 'flag='> 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                            ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                            )
                                                          }
                                                        )
                                                        (C {<func_append>} {<dep_rpath>} 
                                                          {(DQ <' '> ($ Id.VSub_DollarName '$flag'))}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [50096 50107]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$runpath_var'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$perm_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [50253 50260 50262 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<perm_rpath>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$libdir')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [50265 50266 50277 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [50229 50240]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$hardcode_libdirs')}
                                                  spids: [50318]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'dep_rpath='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [50293 50315]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$runpath_var'))}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$perm_rpath'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [50363]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: dir
                                              iter_words: [{($ Id.VSub_DollarName '$perm_rpath')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_append>} {<rpath>} 
                                                      {(DQ ($ Id.VSub_DollarName '$dir') <':'>)}
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$runpath_var') <'=\''> 
                                                  ($ Id.VSub_DollarName '$rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$runpath_var') 
                                                  <'\'; export '> ($ Id.VSub_DollarName '$runpath_var')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [50335 50356]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dep_rpath'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dep_rpath') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [50417]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50037 50050]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:shlibpath)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$finalize_shlibpath')}
                                  spids: [50429]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:shlibpath)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$compile_shlibpath') 
                                          ($ Id.VSub_DollarName '$shlibpath')
                                        }
                                      spids: [50445]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'=\''> 
                                          ($ Id.VSub_DollarName '$shlibpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$shlibpath_var') 
                                          <'\'; export '> ($ Id.VSub_DollarName '$shlibpath_var')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [50450 50461]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'shared_ext='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              }
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'library_names='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$library_names_spec') 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              }
                            )
                            (C {<set>} {<dummy>} {($ Id.VSub_DollarName '$library_names')})
                            (C {<shift>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:realname)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number '$1')}
                                  spids: [50511]
                                )
                              ]
                            )
                            (C {<shift>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$soname_spec'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'soname='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$soname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                  ]
                                  spids: [50519 50530]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:soname)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$realname')}
                                      spids: [50544]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dlname'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$soname')}
                                          spids: [50565]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50551 50562]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lib)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      ($ Id.VSub_DollarName '$realname')
                                    }
                                  spids: [50573]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:linknames)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [50579]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: link
                              do_arg_iter: T
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_append>} {<linknames>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$link'))}
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$pic_flag'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                                    {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                                  )
                                                  (C {($ Id.VSub_DollarName '$SP2NL')})
                                                  (C {($ Id.VSub_DollarName '$SED')} 
                                                    {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                                  )
                                                  (C {($ Id.VSub_DollarName '$NL2SP')})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [50618]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                  {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [50661]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:delfiles)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [50665]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$include_expsyms'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<cp>} {(DQ ($ Id.VSub_DollarName '$export_symbols'))} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.uexp>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.uexp>
                                            }
                                          spids: [50710]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<delfiles>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$export_symbols'))}
                                    )
                                  ]
                                  spids: [50668 50689]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:orig_export_symbols)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [50731]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host_os')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<cygwin> <Id.Lit_Star '*'>}
                                    {<mingw> <Id.Lit_Star '*'>}
                                    {<cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<func_dll_def_p>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: orig_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            }
                                                          spids: [50819]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [50823]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: always_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [50826]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50756 50777]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50741 50753 50836 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$always_export_symbols'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'generating symbol list for \''> 
                                                  ($ Id.VSub_DollarName '$libname') <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$libname') <.exp>
                                                    }
                                                  spids: [50896]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {($ Id.VSub_DollarName '$export_symbols')}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$export_symbols_cmds')}
                                                  spids: [50912]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$IFS')}
                                                      spids: [50916]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <'~'>)}
                                                  spids: [50920]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: cmd1
                                              iter_words: [{($ Id.VSub_DollarName '$cmds')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:IFS)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                                          spids: [50938]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {($ Id.VSub_DollarName '$nm_file_list_spec') 
                                                          <Id.Lit_TildeLike '~'> ($ Id.VSub_DollarName '$to_tool_file_cmd')
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              <Id.Lit_TildeLike 
'~func_convert_file_noop'
                                                              >
                                                            }
                                                            {<Id.Lit_Star '*'> 
                                                              <Id.Lit_TildeLike 
'~func_convert_file_msys_to_w32'
                                                              >
                                                            }
                                                            {<Id.Lit_TildeLike '~'> <Id.Lit_Star '*'>}
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: try_normal_branch
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [50974]
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'cmd='> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                ) ($ Id.VSub_DollarName '$cmd1') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                              }
                                                            )
                                                            (C {<func_len>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$cmd')
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:len)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_len_result'
                                                                      )
                                                                    }
                                                                  spids: [50994]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [50959 50971 50998 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: try_normal_branch
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<no>}
                                                                  spids: [51005]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [51001 51002 51009 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} {<yes>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$try_normal_branch'))}
                                                                    )
                                                                    (BraceGroup
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DPipe]
                                                                              children: [
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$len'
                                                                                      )
                                                                                    )
                                                                                  } {<-lt>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                                                                )
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName '$max_cmd_len'
                                                                                      )
                                                                                    )
                                                                                  } {<-le>} {<-1>}
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<func_show_eval>} 
                                                              {(DQ ($ Id.VSub_DollarName '$cmd'))} {(SQ <'exit $?'>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                  spids: [51077]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [51015 51063]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$nm_file_list_spec'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$output'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: output_la
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                      )
                                                                    }
                                                                  spids: [51102]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: save_libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$libobjs'
                                                                      )
                                                                    }
                                                                  spids: [51106]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: save_output
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName '$output')
                                                                    }
                                                                  spids: [51110]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:output)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$output_objdir'
                                                                      ) <'/'> ($ Id.VSub_DollarName '$output_la') <.nm>
                                                                    }
                                                                  spids: [51114]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_to_tool_file>} 
                                                              {(DQ ($ Id.VSub_DollarName '$output'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$nm_file_list_spec'
                                                                      ) ($ Id.VSub_DollarName '$func_to_tool_file_result')
                                                                    }
                                                                  spids: [51128]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_append>} {<delfiles>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$output')
                                                                )
                                                              }
                                                            )
                                                            (C {<func_verbose>} 
                                                              {
                                                                (DQ <'creating '> 
                                                                  ($ Id.VSub_DollarName '$NM') <' input file list: '> ($ Id.VSub_DollarName '$output')
                                                                )
                                                              }
                                                            )
                                                            (command.ForEach
                                                              iter_name: obj
                                                              iter_words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$save_libobjs'
                                                                  )
                                                                }
                                                              ]
                                                              do_arg_iter: F
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (C {<func_to_tool_file>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$obj'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName '$ECHO')
                                                                      } {(DQ ($ Id.VSub_DollarName '$func_to_tool_file_result'))}
                                                                    )
                                                                  ]
                                                                )
                                                              redirects: [
                                                                (redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$output'
                                                                        )
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'cmd='> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                ) ($ Id.VSub_DollarName '$cmd1') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                              }
                                                            )
                                                            (C {<func_show_eval>} 
                                                              {(DQ ($ Id.VSub_DollarName '$cmd'))} {(SQ <'exit $?'>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:output)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$save_output'
                                                                      )
                                                                    }
                                                                  spids: [51207]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$save_libobjs'
                                                                      )
                                                                    }
                                                                  spids: [51211]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                  spids: [51215]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [51081 51092]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_verbose>} 
                                                          {
                                                            (DQ 
                                                              <
'using reloadable object file for export list...'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: skipped_export
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<Id.Lit_Colon ':'>}
                                                              spids: [51233]
                                                            )
                                                          ]
                                                        )
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                                  spids: [51254]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<test>} {<Id.Lit_Colon ':'>} 
                                                                  {<Id.KW_Bang '!'> 
                                                                    <Id.Lit_Equals '='>
                                                                  } {(DQ ($ Id.VSub_DollarName '$skipped_export'))}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_show_eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<func_show_eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$MV "${export_symbols}T" "$export_symbols"'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [51258 51282]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50861 50884]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50847 50858]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$include_expsyms'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$export_symbols')}
                                          spids: [51333]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$orig_export_symbols'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$orig_export_symbols')}
                                              spids: [51347]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} 
                                          {
                                            (SQ 
                                              <
'$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
                                              >
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [51309 51330]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<Id.Lit_Colon ':'>} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$skipped_export'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$orig_export_symbols'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'filter symbol list for \''> 
                                          ($ Id.VSub_DollarName '$libname') <'.la\' to tag DATA exports'>
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$SED')}
                                            {<-e>}
                                            {
                                              (SQ 
                                                <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName '$export_symbols')}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  ($ Id.VSub_DollarName '$libname') <.filter>
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<delfiles>} 
                                      {
                                        (DQ <' '> ($ Id.VSub_DollarName '$export_symbols') <' '> 
                                          ($ Id.VSub_DollarName '$output_objdir') <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.def>
                                            }
                                          spids: [51465]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$SED')}
                                            {<-f>}
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.filter>
                                            }
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName '$orig_export_symbols')}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$export_symbols')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [51366 51390]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [51498]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: test_deplib
                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: 
                                        {(DQ <' '> ($ Id.VSub_DollarName '$convenience') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$test_deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [51524 51531 51533 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<tmp_deplibs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$test_deplib'))}
                                            )
                                          ]
                                          spids: [51536 51537 51550 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$tmp_deplibs')}
                                  spids: [51559]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$compiler_needs_object'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: whole_archive_flag_spec
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [51624]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [51578 51613]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:save_libobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$libobjs')}
                                                  spids: [51644]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'libobjs='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libobjs>
                                              } 
                                              {($ Id.VSub_DollarName '$whole_archive_flag_spec') 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                )
                                              }
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                                      op: assign_op.Equal
                                                      rhs: (word.Empty)
                                                      spids: [51674]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [51630 51641]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:gentop)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  (${ Id.VSub_Name outputname) <x>
                                                }
                                              spids: [51680]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<generated>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                                        )
                                        (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                          {($ Id.VSub_DollarName '$convenience')}
                                        )
                                        (C {<func_append>} {<libobjs>} 
                                          {
                                            (DQ <' '> 
                                              ($ Id.VSub_DollarName '$func_extract_archives_result')
                                            )
                                          }
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                              {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [51732]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [51564 51575]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$thread_safe'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$thread_safe_flag_spec')
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'flag='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$thread_safe_flag_spec') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        )
                                      }
                                    )
                                    (C {<func_append>} {<linker_flags>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$flag'))}
                                    )
                                  ]
                                  spids: [51742 51765]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} 
                                          {
                                            (SQ 
                                              <
'(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)'
                                              >
                                            )
                                          }
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [51794 51807]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$module'))}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$module_cmds'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$module_expsym_cmds'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'test_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$module_expsym_cmds') 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$module_expsym_cmds')}
                                                  spids: [51893]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [51861 51882]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'test_cmds='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) ($ Id.VSub_DollarName '$module_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$module_cmds')}
                                              spids: [51908]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [51835 51858]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$archive_expsym_cmds'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'test_cmds='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) ($ Id.VSub_DollarName '$archive_expsym_cmds') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$archive_expsym_cmds')}
                                              spids: [51950]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [51918 51939]
                                    )
                                  ]
                                  else_action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'test_cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cmds)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$archive_cmds')}
                                          spids: [51965]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<Id.Lit_Colon ':'>} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$skipped_export'))}
                                                )
                                                (C {<func_len>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$test_cmds'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:len)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                                      spids: [52002]
                                                    )
                                                  ]
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName '$len'))} {<-lt>} 
                                                  {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))} 
                                                  {<-le>} {<-1>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<Id.Lit_Colon ':'>})]
                                  spids: [51976 52033]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                                    )
                                                    (C {<test>} {<-z>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_libobjs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$libobjs')}
                                              spids: [52111]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [52087 52108]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_output)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$output')}
                                      spids: [52118]
                                    )
                                  ]
                                )
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:output_la)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                      spids: [52129]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:test_cmds)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [52142]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [52145]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:objlist)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [52148]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:last_robj)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [52151]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:k)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [52154]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$save_libobjs'))}
                                                    )
                                                    (C {<test>} {<Id.Lit_Colon ':'>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$skipped_export'))}
                                                    )
                                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$with_gnu_ld'))}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  ($ Id.VSub_DollarName '$output_la') <.lnkscript>
                                                }
                                              spids: [52198]
                                            )
                                          ]
                                        )
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating GNU ld script: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                        (command.Simple
                                          words: [{<echo>} {(SQ <'INPUT ('>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ForEach
                                          iter_name: obj
                                          iter_words: [{($ Id.VSub_DollarName '$save_libobjs')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (C {<func_to_tool_file>} 
                                                  {(DQ ($ Id.VSub_DollarName '$obj'))}
                                                )
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName '$ECHO')}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
'$func_to_tool_file_result'
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName '$output')}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                        )
                                        (command.Simple
                                          words: [{<echo>} {(SQ <')'>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (C {<func_append>} {<delfiles>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$output'))}
                                        )
                                        (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$func_to_tool_file_result')}
                                              spids: [52285]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [52159 52195]
                                    )
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$save_libobjs'))}
                                                    )
                                                    (C {<test>} {<Id.Lit_Colon ':'>} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$skipped_export'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file_list_spec'))}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  ($ Id.VSub_DollarName '$output_la') <.lnk>
                                                }
                                              spids: [52326]
                                            )
                                          ]
                                        )
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating linker input file list: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                        (command.Simple
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (C {<set>} {<x>} {($ Id.VSub_DollarName '$save_libobjs')})
                                        (C {<shift>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:firstobj)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [52358]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$compiler_needs_object'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:firstobj)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_Number '$1') <' '>)}
                                                      spids: [52377]
                                                    )
                                                  ]
                                                )
                                                (C {<shift>})
                                              ]
                                              spids: [52361 52374]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: obj
                                          do_arg_iter: T
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (C {<func_to_tool_file>} 
                                                  {(DQ ($ Id.VSub_DollarName '$obj'))}
                                                )
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName '$ECHO')}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
'$func_to_tool_file_result'
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName '$output')}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                        )
                                        (C {<func_append>} {<delfiles>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$output'))}
                                        )
                                        (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$firstobj') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$file_list_spec') ($ Id.VSub_DollarName '$func_to_tool_file_result') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  )
                                                }
                                              spids: [52436]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [52289 52323]
                                    )
                                  ]
                                  else_action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$save_libobjs'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_verbose>} 
                                              {(DQ <'creating reloadable object files...'>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$output_la') <-> ($ Id.VSub_DollarName '$k') <.> ($ Id.VSub_DollarName '$objext')
                                                    }
                                                  spids: [52468]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'test_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                              }
                                            )
                                            (C {<func_len>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$test_cmds'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:len0)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                                  spids: [52494]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:len)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$len0')}
                                                  spids: [52498]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: obj
                                              iter_words: [{($ Id.VSub_DollarName '$save_libobjs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_len>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$obj'))}
                                                    )
                                                    (C {<func_arith>} {($ Id.VSub_DollarName '$len')} 
                                                      {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:len)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_arith_result'
                                                              )
                                                            }
                                                          spids: [52536]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DPipe]
                                                                      children: [
                                                                        (C {<test>} {<-z>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$objlist'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<test>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$len'
                                                                              )
                                                                            )
                                                                          } {<-lt>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {<func_append>} {<objlist>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$obj')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [52540 52566]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<test>} {<1>} {<-eq>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$k'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: reload_objs
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$objlist'
                                                                          )
                                                                        }
                                                                      spids: [52610]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<eval>} 
                                                                  {<Id.Lit_VarLike 'concat_cmds='> 
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\"'>
                                                                    ) ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                  }
                                                                )
                                                              ]
                                                              spids: [52590 52603]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: reload_objs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$objlist'
                                                                        ) <' '> ($ Id.VSub_DollarName '$last_robj')
                                                                      )
                                                                    }
                                                                  spids: [52633]
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                                ($ Id.VSub_DollarName '$reload_cmds') <Id.Lit_TildeLike '~'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <RM>
                                                              } {($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)}
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:last_robj)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$output_la') <-> ($ Id.VSub_DollarName '$k') <.> 
                                                                  ($ Id.VSub_DollarName '$objext')
                                                                }
                                                              spids: [52660]
                                                            )
                                                          ]
                                                        )
                                                        (C {<func_arith>} {($ Id.VSub_DollarName '$k')} 
                                                          {<Id.Lit_Other '+'>} {<1>}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:k)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                  )
                                                                }
                                                              spids: [52679]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:output)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$output_la') <-> ($ Id.VSub_DollarName '$k') <.> 
                                                                  ($ Id.VSub_DollarName '$objext')
                                                                }
                                                              spids: [52683]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:objlist)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$obj')
                                                                  )
                                                                }
                                                              spids: [52693]
                                                            )
                                                          ]
                                                        )
                                                        (C {<func_len>} 
                                                          {
                                                            (DQ <' '> 
                                                              ($ Id.VSub_DollarName '$last_robj')
                                                            )
                                                          }
                                                        )
                                                        (C {<func_arith>} 
                                                          {($ Id.VSub_DollarName '$len0')} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:len)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                  )
                                                                }
                                                              spids: [52717]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$concat_cmds') 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [52749]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:reload_objs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$objlist') <' '> 
                                                        ($ Id.VSub_DollarName '$last_robj')
                                                      )
                                                    }
                                                  spids: [52754]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                                ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$last_robj')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'concat_cmds='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                        ) <RM>
                                                      } {($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)}
                                                    )
                                                  ]
                                                  spids: [52772 52783]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<delfiles>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$output'))}
                                            )
                                          ]
                                          spids: [52447 52458]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [52817]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C 
                                          {
                                            (braced_var_sub
                                              token: <Id.VSub_Name skipped_export>
                                              suffix_op: 
                                                (suffix_op.Unary
                                                  tok: <Id.VTest_Hyphen ->
                                                  arg_word: {<false>}
                                                )
                                            )
                                          }
                                        )
                                        (BraceGroup
                                          children: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'generating symbol list for \''> 
                                                  ($ Id.VSub_DollarName '$libname') <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$libname') <.exp>
                                                    }
                                                  spids: [52844]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {($ Id.VSub_DollarName '$export_symbols')}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$output')}
                                                  spids: [52860]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$concat_cmds') 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [52878]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                                ($ Id.VSub_DollarName '$export_symbols_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$last_robj')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'concat_cmds='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                        ) <RM>
                                                      } {($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)}
                                                    )
                                                  ]
                                                  spids: [52893 52904]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$save_libobjs'))})
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating a temporary reloadable object file: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_ifs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$IFS')}
                                              spids: [52952]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'~'>)}
                                          spids: [52956]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: cmd
                                      iter_words: [{($ Id.VSub_DollarName '$concat_cmds')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                                  spids: [52974]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_quiet')})
                                                (BraceGroup
                                                  children: [
                                                    (C {<func_quote_for_expand>} 
                                                      {(DQ ($ Id.VSub_DollarName '$cmd'))}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'func_echo '> 
                                                          ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                                                (BraceGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lt_exit)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_QMark '$?')}
                                                          spids: [53018]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<relink>} 
                                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.Subshell
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<cd>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$output_objdir'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {($ Id.VSub_DollarName '$RM')} 
                                                                      {
                                                                        (DQ 
                                                                          (${ Id.VSub_Name realname) <T>
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {($ Id.VSub_DollarName '$MV')} 
                                                                      {
                                                                        (DQ 
                                                                          (${ Id.VSub_Name realname) <U>
                                                                        )
                                                                      } {(DQ ($ Id.VSub_DollarName '$realname'))}
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [53027 53040]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Exit exit>
                                                      arg_word: {($ Id.VSub_DollarName '$lt_exit')}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                          spids: [53099]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C 
                                                          {
                                                            (braced_var_sub
                                                              token: <Id.VSub_Name skipped_export>
                                                              suffix_op: 
                                                                (suffix_op.Unary
                                                                  tok: <Id.VTest_Hyphen ->
                                                                  arg_word: {<false>}
                                                                )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_show_eval>} 
                                              {
                                                (SQ 
                                                  <
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<func_show_eval>} 
                                              {(SQ <'$MV "${export_symbols}T" "$export_symbols"'>)}
                                            )
                                          ]
                                          spids: [53104 53123]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C 
                                      {
                                        (braced_var_sub
                                          token: <Id.VSub_Name skipped_export>
                                          suffix_op: 
                                            (suffix_op.Unary
                                              tok: <Id.VTest_Hyphen ->
                                              arg_word: {<false>}
                                            )
                                        )
                                      }
                                    )
                                    (BraceGroup
                                      children: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$export_symbols'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$include_expsyms'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$export_symbols')}
                                                      spids: [53182]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: tmp_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                              )
                                                            }
                                                          spids: [53196]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [53158 53179]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'filter symbol list for \''> 
                                                      ($ Id.VSub_DollarName '$libname') <'.la\' to tag DATA exports'>
                                                    )
                                                  }
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$SED')}
                                                        {<-e>}
                                                        {
                                                          (SQ 
                                                            <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            }
                                                        )
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {($ Id.VSub_DollarName '$output_objdir') 
                                                              <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                                (C {<func_append>} {<delfiles>} 
                                                  {
                                                    (DQ <' '> ($ Id.VSub_DollarName '$export_symbols') 
                                                      <' '> ($ Id.VSub_DollarName '$output_objdir') <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                                    )
                                                  }
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:export_symbols)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$output_objdir') 
                                                          <'/'> ($ Id.VSub_DollarName '$libname') <.def>
                                                        }
                                                      spids: [53301]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$SED')}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName '$output_objdir') 
                                                          <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                              )
                                                            }
                                                        )
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [53215 53226]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$output')}
                                      spids: [53337]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:output)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$save_output')}
                                      spids: [53345]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'libobjs='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libobjs>
                                          } 
                                          {($ Id.VSub_DollarName '$whole_archive_flag_spec') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            )
                                          }
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                              {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [53400]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [53350 53371]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$module'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$module_cmds'))}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$export_symbols'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$module_expsym_cmds'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          ($ Id.VSub_DollarName '$module_expsym_cmds')
                                                        }
                                                      spids: [53469]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [53445 53466]
                                            )
                                          ]
                                          else_action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$module_cmds')}
                                                  spids: [53476]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [53419 53442]
                                    )
                                  ]
                                  else_action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$archive_expsym_cmds'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$archive_expsym_cmds')}
                                                  spids: [53510]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [53486 53507]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$archive_cmds')}
                                              spids: [53517]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$delfiles'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <cmds> <Id.Lit_TildeLike '~'> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) <RM>
                                      } {($ Id.VSub_DollarName '$delfiles') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)}
                                    )
                                  ]
                                  spids: [53531 53542]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$dlprefiles'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:gentop)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              (${ Id.VSub_Name outputname) <x>
                                            }
                                          spids: [53585]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<generated>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                                    )
                                    (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                      {($ Id.VSub_DollarName '$dlprefiles')}
                                    )
                                    (C {<func_append>} {<libobjs>} 
                                      {
                                        (DQ <' '> 
                                          ($ Id.VSub_DollarName '$func_extract_archives_result')
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                          {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:libobjs)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [53637]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [53571 53582]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$IFS')}
                                      spids: [53644]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'~'>)}
                                  spids: [53648]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: cmd
                              iter_words: [{($ Id.VSub_DollarName '$cmds')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$sp') 
                                              ($ Id.VSub_DollarName '$nl')
                                            }
                                          spids: [53666]
                                        )
                                      ]
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmd='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                          spids: [53679]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_quiet')})
                                        (BraceGroup
                                          children: [
                                            (C {<func_quote_for_expand>} 
                                              {(DQ ($ Id.VSub_DollarName '$cmd'))}
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'func_echo '> 
                                                  ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                                        (BraceGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lt_exit)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [53723]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$opt_mode')
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Subshell
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp Id.Op_DAmp]
                                                          children: [
                                                            (C {<cd>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName '$RM')} 
                                                              {(DQ (${ Id.VSub_Name realname) <T>)}
                                                            )
                                                            (C {($ Id.VSub_DollarName '$MV')} 
                                                              {(DQ (${ Id.VSub_Name realname) <U>)} {(DQ ($ Id.VSub_DollarName '$realname'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  ]
                                                  spids: [53732 53745]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Exit exit>
                                              arg_word: {($ Id.VSub_DollarName '$lt_exit')}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                                  spids: [53804]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} 
                                          {
                                            (SQ 
                                              <
'(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)'
                                              >
                                            )
                                          }
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)})
                                                  ]
                                                  spids: [53861 53872]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [53847 53858]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                                    )
                                  ]
                                  spids: [53813 53826]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: linkname
                              iter_words: [{($ Id.VSub_DollarName '$linknames')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName '$realname'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$linkname'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_show_eval>} 
                                              {
                                                (SQ 
                                                  <
'(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")'
                                                  >
                                                )
                                              } {(SQ <'exit $?'>)}
                                            )
                                          ]
                                          spids: [53914 53930]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$module'))}
                                                )
                                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_dynamic'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$soname')}
                                          spids: [53987]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [53955 53980]
                                )
                              ]
                            )
                          ]
                          spids: [49991 50004]
                        )
                      ]
                    )
                  ]
                  spids: [44263 44264 53997 -1]
                )
                (case_arm
                  pat_list: [{<obj>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$dlfiles') 
                                              ($ Id.VSub_DollarName '$dlprefiles')
                                            )
                                          }
                                        )
                                        (C {<test>} {<no>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$dlself'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<func_warning>} {(DQ <'\'-dlopen\' is ignored for objects'>)})]
                          spids: [54005 54030]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} {(DQ <'\'-l\' and \'-L\' are ignored for objects'>)})
                          ]
                          spids: [54054 54065 54074 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                        (C {<func_warning>} {(DQ <'\'-rpath\' is ignored for objects'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xrpath'))})
                        (C {<func_warning>} {(DQ <'\'-R\' is ignored for objects'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                        (C {<func_warning>} {(DQ <'\'-version-info\' is ignored for objects'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                        (C {<func_warning>} {(DQ <'\'-release\' is ignored for objects'>)})
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$output')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$objs') 
                                      ($ Id.VSub_DollarName '$old_deplibs')
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'cannot build library object \''> 
                                      ($ Id.VSub_DollarName '$output') <'\' from non-libtool objects'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$output')}
                                  spids: [54196]
                                )
                              ]
                            )
                            (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                  spids: [54207]
                                )
                              ]
                            )
                          ]
                          spids: [54168 54170 54211 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [54218]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$output')}
                                  spids: [54221]
                                )
                              ]
                            )
                          ]
                          spids: [54214 54215 54225 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (C {($ Id.VSub_DollarName '$RM')} {($ Id.VSub_DollarName '$obj')} 
                          {($ Id.VSub_DollarName '$libobj')}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [54264]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gentop)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [54267]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$reload_cmds')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) <Id.Lit_ArrayLhsOpen 'LD['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:wl)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [54298]
                                )
                              ]
                            )
                          ]
                          spids: [54289 54296 54300 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$convenience'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$whole_archive_flag_spec'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'tmp_whole_archive_flags='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$whole_archive_flag_spec') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$wl'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:tmp_whole_archive_flags)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$tmp_whole_archive_flags'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {(SQ <'s|,| |g'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [54352]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$reload_objs') 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                              ) ($ Id.VSub_DollarName '$tmp_whole_archive_flags')
                                            }
                                          spids: [54372]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [54320 54331]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:gentop)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                          (${ Id.VSub_Name obj) <x>
                                        }
                                      spids: [54381]
                                    )
                                  ]
                                )
                                (C {<func_append>} {<generated>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                  {($ Id.VSub_DollarName '$convenience')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$reload_objs') <' '> 
                                            ($ Id.VSub_DollarName '$func_extract_archives_result')
                                          )
                                        }
                                      spids: [54408]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [54306 54317]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:libobjs)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$non_pic_objects')}
                              spids: [54439]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:reload_objs)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName '$objs') ($ Id.VSub_DollarName '$old_deplibs') 
                              (SQ <' '>) 
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SP2NL')})
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {
                                          (DQ <'/'> <Id.Lit_BadBackslash '\\'> <.> 
                                            ($ Id.VSub_DollarName '$libext') <Id.Lit_Dollar '$'> <'/d; /'> <Id.Lit_BadBackslash '\\'> <.lib> <Id.Lit_Dollar '$'> <'/d; '> 
                                            ($ Id.VSub_DollarName '$lo2o')
                                          )
                                        }
                                      )
                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                    ]
                                    negated: F
                                  )
                              ) (SQ <' '>) ($ Id.VSub_DollarName '$reload_conv_objs')
                            }
                          spids: [54448]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$obj')}
                          spids: [54500]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$reload_cmds'))} 
                      {(SQ <'exit $?'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$gentop'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)})]
                                  spids: [54534 54545]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [54520 54531]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                        )
                        (BraceGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$gentop'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)})]
                                  spids: [54583 54594]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$pic_flag'))})
                                        (C {<test>} {<default>} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$pic_mode'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:reload_objs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                        ($ Id.VSub_DollarName '$reload_conv_objs')
                                      )
                                    }
                                  spids: [54664]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libobj')}
                                  spids: [54672]
                                )
                              ]
                            )
                            (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$reload_cmds'))} 
                              {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [54633 54657]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$gentop'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)})]
                          spids: [54691 54702]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [54001 54002 54721 -1]
                )
                (case_arm
                  pat_list: [{<prog>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                              {(DQ ($ Id.VSub_DollarName '$output'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result') <.exe>}
                                  spids: [54755]
                                )
                              ]
                            )
                          ]
                          spids: [54736 54739 54758 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                        (C {<func_warning>} {(DQ <'\'-version-info\' is ignored for programs'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                        (C {<func_warning>} {(DQ <'\'-release\' is ignored for programs'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {($ Id.VSub_DollarName '$preload')})
                        (C {<test>} 
                          {<unknown> <Id.Lit_Comma ','> <unknown> <Id.Lit_Comma ','> <unknown>} {<Id.Lit_Equals '='>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$dlopen_support') <','> 
                              ($ Id.VSub_DollarName '$dlopen_self') <','> ($ Id.VSub_DollarName '$dlopen_self_static')
                            )
                          }
                        )
                        (C {<func_warning>} 
                          {(DQ <'\'LT_INIT([dlopen])\' not used. Assuming no dlopen support.'>)}
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> <Id.Lit_LBracket '['> 
                              <012> <Id.Lit_RBracket ']'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [54869]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName '$finalize_deplibs'))
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [54890]
                                )
                              ]
                            )
                          ]
                          spids: [54847 54862 54911 -1]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<CXX>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$tagname'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name MACOSX_DEPLOYMENT_TARGET>
                                            suffix_op: 
                                              (suffix_op.Unary
                                                tok: <Id.VTest_Hyphen ->
                                                arg_word: {<10.0>}
                                              )
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<10.> <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'>}
                                          ]
                                          action: [
                                            (C {<func_append>} {<compile_command>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$wl') <-bind_at_load>)
                                              }
                                            )
                                            (C {<func_append>} {<finalize_command>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$wl') <-bind_at_load>)
                                              }
                                            )
                                          ]
                                          spids: [54968 54972 54997 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [54941 54954]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [55010]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName '$finalize_deplibs'))
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [55037]
                                )
                              ]
                            )
                          ]
                          spids: [54925 54930 55064 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:new_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [55080]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: path
                      iter_words: [{($ Id.VSub_DollarName '$notinst_path')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                        ($ Id.VSub_DollarName '$objdir') <' '>
                                      ) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [55106 55115 55117 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                                ($ Id.VSub_DollarName '$objdir') <' '>
                                              ) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<func_append>} {<new_libs>} 
                                              {
                                                (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                                  ($ Id.VSub_DollarName '$objdir')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [55135 55144 55158 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55120 55121 55164 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$compile_deplibs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplib')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55208 55215 55217 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<new_libs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                          ]
                                          spids: [55220 55221 55232 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55192 55194 55238 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<new_libs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$deplib'))}
                                    )
                                  ]
                                  spids: [55241 55242 55253 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_deplibs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$new_libs')}
                          spids: [55262]
                        )
                      ]
                    )
                    (C {<func_append>} {<compile_command>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs'))}
                    )
                    (C {<func_append>} {<finalize_command>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$finalize_deplibs'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$rpath') 
                                          ($ Id.VSub_DollarName '$xrpath')
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: libdir
                              iter_words: [
                                {($ Id.VSub_DollarName '$rpath')}
                                {($ Id.VSub_DollarName '$xrpath')}
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$finalize_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55336 55343 55345 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<finalize_rpath>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [55348 55349 55360 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [55289 55301]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rpath)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [55377]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hardcode_libdirs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [55380]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [
                        {($ Id.VSub_DollarName '$compile_rpath')}
                        {($ Id.VSub_DollarName '$finalize_rpath')}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$libdir')}
                                                          spids: [55439]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [55425 55436]
                                                )
                                              ]
                                              else_action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [55459 55466 55469 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_append>} {<hardcode_libdirs>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                              ) ($ Id.VSub_DollarName '$libdir')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      spids: [55472 55473 55486 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [55411 55422]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'flag='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            )
                                          }
                                        )
                                        (C {<func_append>} {<rpath>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$flag'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55397 55408]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$runpath_var'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$perm_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55543 55550 55552 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<perm_rpath>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [55555 55556 55567 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55519 55530]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:testbindir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [55621]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$libdir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55652 55659 55661 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$libdir')}
                                                  spids: [55668]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [55664 55666 55670 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<dllsearchpath>} 
                                              {(DQ <':'> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [55673 55674 55684 -1]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$testbindir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55699 55706 55708 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$testbindir')}
                                                  spids: [55715]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [55711 55713 55717 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<dllsearchpath>} 
                                              {(DQ <':'> ($ Id.VSub_DollarName '$testbindir'))}
                                            )
                                          ]
                                          spids: [55720 55721 55731 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55583 55618 55737 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_separator'))}
                                        )
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$hardcode_libdirs')}
                                  spids: [55775]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'rpath='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              } 
                              {($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              }
                            )
                          ]
                          spids: [55750 55772]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_rpath)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$rpath')}
                          spids: [55791]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rpath)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [55796]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hardcode_libdirs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [55799]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [{($ Id.VSub_DollarName '$finalize_rpath')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$libdir')}
                                                          spids: [55856]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [55842 55853]
                                                )
                                              ]
                                              else_action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [55876 55883 55886 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_append>} {<hardcode_libdirs>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                              ) ($ Id.VSub_DollarName '$libdir')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      spids: [55889 55890 55903 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [55828 55839]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'flag='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            )
                                          }
                                        )
                                        (C {<func_append>} {<rpath>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$flag'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55814 55825]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$runpath_var'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {(DQ ($ Id.VSub_DollarName '$finalize_perm_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [55960 55967 55969 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<finalize_perm_rpath>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$libdir'))}
                                            )
                                          ]
                                          spids: [55972 55973 55984 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [55936 55947]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_separator'))}
                                        )
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$hardcode_libdirs')}
                                  spids: [56025]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'rpath='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              } 
                              {($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                )
                              }
                            )
                          ]
                          spids: [56000 56022]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_rpath)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$rpath')}
                          spids: [56041]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libobjs'))})
                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [56076]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$finalize_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [56104]
                                )
                              ]
                            )
                          ]
                          spids: [56046 56069]
                        )
                      ]
                    )
                    (C {<func_generate_dlsyms>} {(DQ ($ Id.VSub_DollarName '$outputname'))} 
                      {(DQ <'@PROGRAM@'>)} {<false>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prelink_cmds'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$prelink_cmds'))} 
                              {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [56154 56165]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wrappers_required)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [56183]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <mingw32ce> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:wrappers_required)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                  spids: [56210]
                                )
                              ]
                            )
                          ]
                          spids: [56194 56203 56214 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:wrappers_required)
                                      op: assign_op.Equal
                                      rhs: {<false>}
                                      spids: [56242]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [56217 56227 56246 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<no>} {<Id.Lit_Equals '='>} 
                                                  {(DQ ($ Id.VSub_DollarName '$need_relink'))}
                                                )
                                                (C {<test>} {<yes>} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:wrappers_required)
                                          op: assign_op.Equal
                                          rhs: {<false>}
                                          spids: [56282]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [56253 56279]
                                )
                              ]
                            )
                          ]
                          spids: [56249 56250 56289 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$wrappers_required')})
                        (BraceGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [56306]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$compile_command') 
                                      ($ Id.VSub_DollarName '$compile_rpath')
                                    }
                                  spids: [56332]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:exit_status)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [56342]
                                )
                              ]
                            )
                            (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$link_command'))} 
                              {(SQ <'exit_status=$?'>)}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:postlink_cmds)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<func_echo_all>} 
                                                        {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {(SQ <'s%@OUTPUT@%'>) 
                                                          (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                        } {<-e>} {(SQ <'s%@TOOL_OUTPUT@%'>) (DQ ($ Id.VSub_DollarName '$func_to_tool_file_result')) (SQ <'%g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [56379]
                                        )
                                      ]
                                    )
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))} {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [56358 56369]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-f>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  (${ Id.VSub_Name outputname) <S.> ($ Id.VSub_DollarName '$objext')
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_show_eval>} 
                                      {(SQ <'$RM "$output_objdir/${outputname}S.$objext"'>)}
                                    )
                                  ]
                                  spids: [56438 56455]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$exit_status')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$compile_shlibpath') 
                                          ($ Id.VSub_DollarName '$finalize_shlibpath')
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$compile_shlibpath') ($ Id.VSub_DollarName '$finalize_shlibpath') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <' '> ($ Id.VSub_DollarName '$compile_command')
                                      )
                                    }
                                  spids: [56493]
                                )
                              ]
                            )
                          ]
                          spids: [56478 56490]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$finalize_shlibpath'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$finalize_shlibpath') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <' '> ($ Id.VSub_DollarName '$finalize_command')
                                      )
                                    }
                                  spids: [56525]
                                )
                              ]
                            )
                          ]
                          spids: [56511 56522]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_var)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [56543]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_var)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [56546]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$perm_rpath'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [56581]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$perm_rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_append>} {<rpath>} 
                                              {(DQ ($ Id.VSub_DollarName '$dir') <':'>)}
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compile_var)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$runpath_var') <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                                ($ Id.VSub_DollarName '$runpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '>
                                              )
                                            }
                                          spids: [56609]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [56563 56574]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$finalize_perm_rpath'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [56643]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$finalize_perm_rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_append>} {<rpath>} 
                                              {(DQ ($ Id.VSub_DollarName '$dir') <':'>)}
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_var)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$runpath_var') <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                                ($ Id.VSub_DollarName '$runpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '>
                                              )
                                            }
                                          spids: [56671]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [56625 56636]
                                )
                              ]
                            )
                          ]
                          spids: [56549 56560]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$no_install'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$compile_var') 
                                      ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$compile_rpath')
                                    }
                                  spids: [56711]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$link_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [56721]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (C {($ Id.VSub_DollarName '$RM')} {($ Id.VSub_DollarName '$output')})
                              ]
                            )
                            (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$link_command'))} 
                              {(SQ <'exit $?'>)}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:postlink_cmds)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<func_echo_all>} 
                                                        {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {(SQ <'s%@OUTPUT@%'>) 
                                                          (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                        } {<-e>} {(SQ <'s%@TOOL_OUTPUT@%'>) (DQ ($ Id.VSub_DollarName '$func_to_tool_file_result')) (SQ <'%g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [56797]
                                        )
                                      ]
                                    )
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))} {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [56776 56787]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [56691 56704]
                        )
                      ]
                    )
                    (command.Case
                      to_match: 
                        {($ Id.VSub_DollarName '$hardcode_action') <Id.Lit_Comma ','> 
                          ($ Id.VSub_DollarName '$fast_install')
                        }
                      arms: [
                        (case_arm
                          pat_list: [{<relink> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$compile_var') 
                                      ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$compile_rpath')
                                    }
                                  spids: [56880]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$finalize_var') 
                                      ($ Id.VSub_DollarName '$finalize_command') ($ Id.VSub_DollarName '$finalize_rpath')
                                    }
                                  spids: [56886]
                                )
                              ]
                            )
                            (C {<func_warning>} 
                              {(DQ <'this platform does not like uninstalled shared libraries'>)}
                            )
                            (C {<func_warning>} 
                              {
                                (DQ <'\''> ($ Id.VSub_DollarName '$output') 
                                  <'\' will be relinked during installation'>
                                )
                              }
                            )
                          ]
                          spids: [56870 56873 56909 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <yes>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$finalize_var') 
                                      ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$finalize_rpath')
                                    }
                                  spids: [56918]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$compile_var') 
                                                    ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$compile_rpath')
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s%@OUTPUT@%$progdir/$file%g'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [56924]
                                )
                              ]
                            )
                          ]
                          spids: [56912 56915 56950 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <no>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$compile_var') 
                                      ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$compile_rpath')
                                    }
                                  spids: [56959]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$finalize_var') 
                                      ($ Id.VSub_DollarName '$finalize_command') ($ Id.VSub_DollarName '$finalize_rpath')
                                    }
                                  spids: [56965]
                                )
                              ]
                            )
                          ]
                          spids: [56953 56956 56971 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <needless>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$finalize_var') 
                                      ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$finalize_rpath')
                                    }
                                  spids: [56980]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [56986]
                                )
                              ]
                            )
                          ]
                          spids: [56974 56977 56989 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:link_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$link_command'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(SQ <'s%@OUTPUT@%'>) 
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            ($ Id.VSub_DollarName '$outputname')
                                          ) (SQ <'%g'>)
                                        }
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [57000]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (C {($ Id.VSub_DollarName '$RM')} {($ Id.VSub_DollarName '$output')} 
                          {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                            ($ Id.VSub_DollarName '$outputname')
                          } {($ Id.VSub_DollarName '$output_objdir') <'/lt-'> ($ Id.VSub_DollarName '$outputname')}
                        )
                      ]
                    )
                    (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$link_command'))} 
                      {(SQ <'exit $?'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_to_tool_file>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                  ($ Id.VSub_DollarName '$outputname')
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:postlink_cmds)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<func_echo_all>} 
                                                {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                    ($ Id.VSub_DollarName '$outputname')
                                                  ) (SQ <'%g'>)
                                                } {<-e>} {(SQ <'s%@TOOL_OUTPUT@%'>) (DQ ($ Id.VSub_DollarName '$func_to_tool_file_result')) (SQ <'%g'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [57086]
                                )
                              ]
                            )
                            (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$postlink_cmds'))} 
                              {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [57063 57074]
                        )
                      ]
                    )
                    (C {<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName '$output'))})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$relink_command'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_name: var
                              iter_words: [{($ Id.VSub_DollarName '$variables_saved_for_relink')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<eval>} {<test>} {<-z>} 
                                                      {
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_LBrace '{'> 
                                                        ($ Id.VSub_DollarName '$var') <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'{ test -z '> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$var') 
                                                        <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' || '> ($ Id.VSub_DollarName '$lt_unset') 
                                                        <' '> ($ Id.VSub_DollarName '$var') <' || { '> ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                        ($ Id.VSub_DollarName '$var') <'; }; }; '> ($ Id.VSub_DollarName '$relink_command')
                                                      )
                                                    }
                                                  spids: [57211]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [57190 57208]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'var_value='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                        ) ($ Id.VSub_DollarName '$var')
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$var_value'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                        ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                                      )
                                                    }
                                                  spids: [57254]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [57233 57251]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_quote_for_eval>} 
                                          {(DQ ($ Id.VSub_DollarName '$var_value'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:relink_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$var') <'='> 
                                                    ($ Id.VSub_DollarName 
'$func_quote_for_eval_result'
                                                    ) <'; export '> ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                                  )
                                                }
                                              spids: [57274]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'(cd '> 
                                        (command_sub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: (C {<pwd>})
                                        ) <'; '> ($ Id.VSub_DollarName '$relink_command') <')'>
                                      )
                                    }
                                  spids: [57292]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [57306]
                                )
                              ]
                            )
                          ]
                          spids: [57160 57171]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (BraceGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$output')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                  action: [
                                    (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                      {(DQ ($ Id.VSub_DollarName '$output'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [57374]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [57356 57358 57377 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:exeext)
                                          op: assign_op.Equal
                                          rhs: {<.exe>}
                                          spids: [57400]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                      {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:outputname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [57418]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [57394 57397 57421 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:exeext)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [57427]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [57424 57425 57429 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (C {<func_dirname_and_basename>} 
                                      {(DQ ($ Id.VSub_DollarName '$output'))} {(DQ )} {(DQ <.>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output_name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                          spids: [57469]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output_path)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                          spids: [57473]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cwrappersource)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_path') <'/'> 
                                              ($ Id.VSub_DollarName '$objdir') <'/lt-'> ($ Id.VSub_DollarName '$output_name') <.c>
                                            }
                                          spids: [57477]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cwrapper)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_path') <'/'> 
                                              ($ Id.VSub_DollarName '$output_name') <.exe>
                                            }
                                          spids: [57486]
                                        )
                                      ]
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$cwrappersource')} {($ Id.VSub_DollarName '$cwrapper')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$cwrappersource') <' '> ($ Id.VSub_DollarName '$cwrapper') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.Simple
                                      words: [{<func_emit_cwrapperexe_src>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName '$cwrappersource')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (BraceGroup
                                          children: [
                                            (C {($ Id.VSub_DollarName '$LTCC')} 
                                              {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {($ Id.VSub_DollarName '$cwrapper')} {($ Id.VSub_DollarName '$cwrappersource')}
                                            )
                                            (C {($ Id.VSub_DollarName '$STRIP')} 
                                              {($ Id.VSub_DollarName '$cwrapper')}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_ltwrapper_scriptname>} 
                                      {($ Id.VSub_DollarName '$cwrapper')}
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <x> 
                                                                  ($ Id.VSub_DollarName '$build')
                                                                )
                                                              } {<Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_DollarName '$host'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$cwrapper')}
                                                        {<--lt-dump-script>}
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [57613 57630]
                                                )
                                              ]
                                              else_action: [
                                                (command.Simple
                                                  words: [{<func_emit_wrapper>} {<no>}]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: 
                                                        {
                                                          ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [57442 57452 57660 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$output') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.Simple
                                      words: [{<func_emit_wrapper>} {<no>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName '$output')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                  ]
                                  spids: [57663 57665 57708 -1]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [54725 54726 57722 -1]
                )
              ]
            )
            (command.ForEach
              iter_name: oldlib
              iter_words: [{($ Id.VSub_DollarName '$oldlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$build_libtool_libs')}
                      arms: [
                        (case_arm
                          pat_list: [{<convenience>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$libobjs_save') <' '> 
                                        ($ Id.VSub_DollarName '$symfileobj')
                                      )
                                    }
                                  spids: [57757]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:addlibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$convenience')}
                                  spids: [57765]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [57769]
                                )
                              ]
                            )
                          ]
                          spids: [57753 57754 57773 -1]
                        )
                        (case_arm
                          pat_list: [{<module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libobjs_save')}
                                  spids: [57780]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:addlibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$old_convenience')}
                                  spids: [57784]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [57788]
                                )
                              ]
                            )
                          ]
                          spids: [57776 57777 57792 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$old_deplibs') <' '> 
                                        ($ Id.VSub_DollarName '$non_pic_objects')
                                      )
                                    }
                                  spids: [57799]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {($ Id.VSub_DollarName '$preload')})
                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$symfileobj'))})
                                (C {<func_append>} {<oldobjs>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$symfileobj'))}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:addlibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$old_convenience')}
                                  spids: [57833]
                                )
                              ]
                            )
                          ]
                          spids: [57795 57796 57837 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$addlibs'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      (${ Id.VSub_Name outputname) <x>
                                    }
                                  spids: [57858]
                                )
                              ]
                            )
                            (C {<func_append>} {<generated>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                            )
                            (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                              {($ Id.VSub_DollarName '$addlibs')}
                            )
                            (C {<func_append>} {<oldobjs>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$func_extract_archives_result'))}
                            )
                          ]
                          spids: [57844 57855]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$old_archive_from_new_cmds'))}
                                        )
                                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                          {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmds)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$old_archive_from_new_cmds')}
                                  spids: [57929]
                                )
                              ]
                            )
                          ]
                          spids: [57903 57926]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dlprefiles'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:gentop)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                          (${ Id.VSub_Name outputname) <x>
                                        }
                                      spids: [57955]
                                    )
                                  ]
                                )
                                (C {<func_append>} {<generated>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                  {($ Id.VSub_DollarName '$dlprefiles')}
                                )
                                (C {<func_append>} {<oldobjs>} 
                                  {(DQ <' '> ($ Id.VSub_DollarName '$func_extract_archives_result'))}
                                )
                              ]
                              spids: [57941 57952]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Subshell
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.ForEach
                                                  iter_name: obj
                                                  iter_words: [{($ Id.VSub_DollarName '$oldobjs')}]
                                                  do_arg_iter: F
                                                  body: 
                                                    (command.DoGroup
                                                      children: [
                                                        (C {<func_basename>} 
                                                          {(DQ ($ Id.VSub_DollarName '$obj'))}
                                                        )
                                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$func_basename_result'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                )
                                                (C {<sort>})
                                                (command.Simple
                                                  words: [{<sort>} {<-uc>}]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                    (redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<1>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              negated: F
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [(C {<Id.Lit_Colon ':'>})]
                              spids: [58020 58069]
                            )
                          ]
                          else_action: [
                            (C {<echo>} 
                              {(DQ <'copying selected object files to avoid basename conflicts...'>)}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      (${ Id.VSub_Name outputname) <x>
                                    }
                                  spids: [58085]
                                )
                              ]
                            )
                            (C {<func_append>} {<generated>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$gentop'))}
                            )
                            (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName '$gentop'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$oldobjs')}
                                  spids: [58111]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [58115]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:counter)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [58118]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$obj'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:objbase)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                          spids: [58141]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$oldobjs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(DQ <' '>)}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$obj')}
                                                  spids: [58161]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [58156 58159 58164 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                              ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName '$objbase') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: (C {<Id.Lit_Colon ':'>})
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:newobj)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<lt> ($ Id.VSub_DollarName '$counter') 
                                                              <-> ($ Id.VSub_DollarName '$objbase')
                                                            }
                                                          spids: [58196]
                                                        )
                                                      ]
                                                    )
                                                    (C {<func_arith>} 
                                                      {($ Id.VSub_DollarName '$counter')} {<Id.Lit_Other '+'>} {<1>}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:counter)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_arith_result'
                                                              )
                                                            }
                                                          spids: [58212]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$oldobjs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\ '>
                                                              ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName '$newobj') <' '>) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [58227 58237 58239 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} 
                                                                              {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.ControlFlow
                                                                          token: 
                                                                            <Id.ControlFlow_Break 
break
                                                                            >
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  spids: [58245 58260]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [58242 58243 58267 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {<func_show_eval>} 
                                              {
                                                (DQ <'ln '> ($ Id.VSub_DollarName '$obj') <' '> 
                                                  ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj') <' || cp '> ($ Id.VSub_DollarName '$obj') <' '> 
                                                  ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj')
                                                )
                                              }
                                            )
                                            (C {<func_append>} {<oldobjs>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$gentop') <'/'> 
                                                  ($ Id.VSub_DollarName '$newobj')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [58167 58177 58306 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_append>} {<oldobjs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$obj'))}
                                            )
                                          ]
                                          spids: [58309 58310 58321 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                        (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$oldlib'))} 
                          {<func_convert_file_msys_to_w32>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:tool_oldlib)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$func_to_tool_file_result')}
                              spids: [58342]
                            )
                          ]
                        )
                        (C {<eval>} 
                          {<Id.Lit_VarLike 'cmds='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                            ) ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                          }
                        )
                        (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$cmds'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:len)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$func_len_result')}
                              spids: [58363]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$len'))} {<-lt>} 
                                              {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                            )
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))} 
                                              {<-le>} {<-1>}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$old_archive_cmds')}
                                      spids: [58397]
                                    )
                                  ]
                                )
                              ]
                              spids: [58367 58394]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$archiver_list_spec'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<func_verbose>} {(DQ <'using command file archive linking...'>)})
                                (command.ForEach
                                  iter_name: obj
                                  iter_words: [{($ Id.VSub_DollarName '$oldobjs')}]
                                  do_arg_iter: F
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName '$obj'))})
                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                          {(DQ ($ Id.VSub_DollarName '$func_to_tool_file_result'))}
                                        )
                                      ]
                                    )
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                          ($ Id.VSub_DollarName '$libname') <.libcmd>
                                        }
                                    )
                                  ]
                                )
                                (C {<func_to_tool_file>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                      ($ Id.VSub_DollarName '$libname') <.libcmd>
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:oldobjs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName '$archiver_list_spec') 
                                            ($ Id.VSub_DollarName '$func_to_tool_file_result')
                                          )
                                        }
                                      spids: [58468]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$old_archive_cmds')}
                                      spids: [58476]
                                    )
                                  ]
                                )
                              ]
                              spids: [58401 58412]
                            )
                          ]
                          else_action: [
                            (C {<func_verbose>} {(DQ <'using piecewise archive linking...'>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$RANLIB')}
                                  spids: [58494]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [58498]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:objlist)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [58502]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:concat_cmds)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [58505]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$oldobjs')}
                                  spids: [58508]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [58512]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:last_oldobj)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$obj')}
                                          spids: [58531]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'test_cmds='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              }
                            )
                            (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$test_cmds'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:len0)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                  spids: [58554]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:len)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$len0')}
                                  spids: [58558]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$obj'))})
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$len')} 
                                      {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:len)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                          spids: [58591]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<objlist>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$obj'))}
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName '$len'))} 
                                                      {<-lt>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [(C {<Id.Lit_Colon ':'>})]
                                          spids: [58605 58620]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:oldobjs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$objlist')}
                                              spids: [58633]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$obj'))} 
                                                          {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$last_oldobj'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:RANLIB)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$save_RANLIB')}
                                                      spids: [58655]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [58637 58652]
                                            )
                                          ]
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$concat_cmds') 
                                                      <Id.Lit_TildeLike '~'>
                                                    }
                                                  spids: [58672]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'concat_cmds='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                            ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:objlist)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [58687]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:len)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$len0')}
                                              spids: [58690]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$save_RANLIB')}
                                  spids: [58700]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$objlist')}
                                  spids: [58704]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$oldobjs'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [58708 58719]
                                )
                              ]
                              else_action: [
                                (C {<eval>} 
                                  {<Id.Lit_VarLike 'cmds='> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> <Id.Lit_TildeLike '~'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    ) <old_archive_cmds> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                  }
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$cmds'))} {(SQ <'exit $?'>)})
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$generated'))})
                (C {<func_show_eval>} 
                  {(DQ (${ Id.VSub_Name RM) <r> ($ Id.VSub_DollarName '$generated'))}
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$output')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_library)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [58810]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$build_old_libs'))}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:old_library)
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName '$libname') <.> 
                                  ($ Id.VSub_DollarName '$libext')
                                }
                              spids: [58825]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName '$output'))})
                    (command.ForEach
                      iter_name: var
                      iter_words: [{($ Id.VSub_DollarName '$variables_saved_for_relink')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<eval>} {<test>} {<-z>} 
                                              {
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_LBrace '{'> 
                                                ($ Id.VSub_DollarName '$var') <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'{ test -z '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$var') 
                                                <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' || '> ($ Id.VSub_DollarName '$lt_unset') 
                                                <' '> ($ Id.VSub_DollarName '$var') <' || { '> ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                ($ Id.VSub_DollarName '$var') <'; }; }; '> ($ Id.VSub_DollarName '$relink_command')
                                              )
                                            }
                                          spids: [58877]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [58856 58874]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'var_value='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                ) ($ Id.VSub_DollarName '$var')
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$var_value'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                              )
                                            }
                                          spids: [58920]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [58899 58917]
                                )
                              ]
                              else_action: [
                                (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$var_value'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:relink_command)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$var') <'='> 
                                            ($ Id.VSub_DollarName '$func_quote_for_eval_result') <'; export '> ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                          )
                                        }
                                      spids: [58940]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:relink_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'(cd '> 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: (C {<pwd>})
                                ) <'; '> ($ Id.VSub_DollarName '$SHELL') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                ($ Id.VSub_DollarName '$progpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                                ($ Id.VSub_DollarName '$preserve_args') <' --mode=relink '> ($ Id.VSub_DollarName '$libtool_args') <' @inst_prefix_dir@)'>
                              )
                            }
                          spids: [58962]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:relink_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [58984]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$hardcode_automatic'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [59020]
                                )
                              ]
                            )
                          ]
                          spids: [59004 59017]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (BraceGroup
                          children: [
                            (command.ForEach
                              iter_name: installed
                              iter_words: [{<no>} {<yes>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<yes>} {<Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName '$installed'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$install_libdir'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [59068 59079]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      (${ Id.VSub_Name outputname) <i>
                                                    }
                                                  spids: [59088]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [59101]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: deplib
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$deplib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                      )
                                                                    }
                                                                  spids: [59135]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_resolve_sysroot>} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {($ Id.VSub_DollarName '$SED')} 
                                                                      {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$func_resolve_sysroot_result')}
                                                                    )
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName '$libdir')
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ <'\''> 
                                                                      ($ Id.VSub_DollarName '$deplib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_append>} {<newdependency_libs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  (braced_var_sub
                                                                    token: <Id.VSub_Name lt_sysroot>
                                                                    suffix_op: 
                                                                      (suffix_op.Unary
                                                                        tok: 
                                                                          <Id.VTest_ColonPlus ':+'>
                                                                        arg_word: {<'='>}
                                                                      )
                                                                  ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59123 59125 59210 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {<-L>} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (C {<func_replace_sysroot>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<func_append>} {<newdependency_libs>} 
                                                              {
                                                                (DQ <' -L'> 
                                                                  ($ Id.VSub_DollarName 
'$func_replace_sysroot_result'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59213 59215 59247 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {<-R>} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (C {<func_replace_sysroot>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {<func_append>} {<newdependency_libs>} 
                                                              {
                                                                (DQ <' -R'> 
                                                                  ($ Id.VSub_DollarName 
'$func_replace_sysroot_result'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59250 59252 59284 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<newdependency_libs>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$deplib')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59287 59288 59299 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$newdependency_libs')}
                                                  spids: [59308]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlfiles)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [59312]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: lib
                                              iter_words: [{($ Id.VSub_DollarName '$dlfiles')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$lib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                      )
                                                                    }
                                                                  spids: [59347]
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {($ Id.VSub_DollarName '$SED')} 
                                                                      {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$lib')}
                                                                    )
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName '$libdir')
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ <'\''> 
                                                                      ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_append>} {<newdlfiles>} 
                                                              {
                                                                (DQ <' '> 
                                                                  (braced_var_sub
                                                                    token: <Id.VSub_Name lt_sysroot>
                                                                    suffix_op: 
                                                                      (suffix_op.Unary
                                                                        tok: 
                                                                          <Id.VTest_ColonPlus ':+'>
                                                                        arg_word: {<'='>}
                                                                      )
                                                                  ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59335 59337 59415 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_append>} {<newdlfiles>} 
                                                              {
                                                                (DQ <' '> 
                                                                  ($ Id.VSub_DollarName '$lib')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59418 59419 59430 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlfiles)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$newdlfiles')}
                                                  spids: [59439]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [59443]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: lib
                                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$lib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                      )
                                                                    }
                                                                  spids: [59493]
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {($ Id.VSub_DollarName '$SED')} 
                                                                      {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$lib')}
                                                                    )
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName '$libdir')
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ <'\''> 
                                                                      ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_append>} {<newdlprefiles>} 
                                                              {
                                                                (DQ <' '> 
                                                                  (braced_var_sub
                                                                    token: <Id.VSub_Name lt_sysroot>
                                                                    suffix_op: 
                                                                      (suffix_op.Unary
                                                                        tok: 
                                                                          <Id.VTest_ColonPlus ':+'>
                                                                        arg_word: {<'='>}
                                                                      )
                                                                  ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [59465 59467 59561 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$newdlprefiles')}
                                                  spids: [59570]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [59052 59065]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlfiles)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [59577]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: lib
                                          iter_words: [{($ Id.VSub_DollarName '$dlfiles')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$lib')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_LBracket '['> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\\'>
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <A-Za-z> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                          <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_DollarName '$lib')}
                                                              spids: [59618]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [59599 59616 59621 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName '$lib'))
                                                                }
                                                              spids: [59627]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [59624 59625 59638 -1]
                                                    )
                                                  ]
                                                )
                                                (C {<func_append>} {<newdlfiles>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$abs'))}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dlfiles)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$newdlfiles')}
                                              spids: [59657]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [59661]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: lib
                                          iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$lib')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_LBracket '['> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\\'>
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <A-Za-z> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                          <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_DollarName '$lib')}
                                                              spids: [59702]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [59683 59700 59705 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName '$lib'))
                                                                }
                                                              spids: [59711]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [59708 59709 59722 -1]
                                                    )
                                                  ]
                                                )
                                                (C {<func_append>} {<newdlprefiles>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName '$abs'))}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dlprefiles)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$newdlprefiles')}
                                              spids: [59741]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tdlname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$dlname')}
                                          spids: [59789]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {($ Id.VSub_DollarName '$host') <Id.Lit_Comma ','> 
                                          ($ Id.VSub_DollarName '$output') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$installed') <Id.Lit_Comma ','> 
                                          ($ Id.VSub_DollarName '$module') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$dlname')
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {(DQ ($ Id.VSub_DollarName '$bindir'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_relative_path>} 
                                                      {(DQ ($ Id.VSub_DollarName '$install_libdir'))} {(DQ ($ Id.VSub_DollarName '$bindir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tdlname)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_relative_path_result'
                                                              ) <'/'> ($ Id.VSub_DollarName '$dlname')
                                                            }
                                                          spids: [59885]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [59860 59871]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:tdlname)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {<'../bin/'> ($ Id.VSub_DollarName '$dlname')}
                                                      spids: [59898]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [59808 59853 59906 -1]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName '$ECHO')}
                                        {
                                          (DQ <'# '> ($ Id.VSub_DollarName '$outputname') 
                                            <' - a libtool library file\n'> <'# Generated by '> ($ Id.VSub_DollarName '$PROGRAM') <' (GNU '> ($ Id.VSub_DollarName '$PACKAGE') <') '> 
                                            ($ Id.VSub_DollarName '$VERSION') <'\n'> <'#\n'> <'# Please DO NOT delete this file!\n'> <'# It is necessary for linking the library.\n'> 
                                            <'\n'> <'# The name that we can dlopen(3).\n'> <'dlname=\''> ($ Id.VSub_DollarName '$tdlname') <'\'\n'> <'\n'> 
                                            <'# Names of this library.\n'> <'library_names=\''> ($ Id.VSub_DollarName '$library_names') <'\'\n'> <'\n'> 
                                            <'# The name of the static archive.\n'> <'old_library=\''> ($ Id.VSub_DollarName '$old_library') <'\'\n'> <'\n'> 
                                            <'# Linker flags that cannot go in dependency_libs.\n'> <'inherited_linker_flags=\''> ($ Id.VSub_DollarName '$new_inherited_linker_flags') <'\'\n'> <'\n'> 
                                            <'# Libraries that this one depends upon.\n'> <'dependency_libs=\''> ($ Id.VSub_DollarName '$dependency_libs') <'\'\n'> <'\n'> 
                                            <
'# Names of additional weak libraries provided by this library\n'
                                            > <'weak_library_names=\''> ($ Id.VSub_DollarName '$weak_libs') <'\'\n'> <'\n'> 
                                            <'# Version information for '> ($ Id.VSub_DollarName '$libname') <'.\n'> <'current='> ($ Id.VSub_DollarName '$current') <'\n'> <'age='> 
                                            ($ Id.VSub_DollarName '$age') <'\n'> <'revision='> ($ Id.VSub_DollarName '$revision') <'\n'> <'\n'> 
                                            <'# Is this an already installed library?\n'> <'installed='> ($ Id.VSub_DollarName '$installed') <'\n'> <'\n'> 
                                            <
'# Should we warn about portability when linking against -modules?\n'
                                            > <'shouldnotlink='> ($ Id.VSub_DollarName '$module') <'\n'> <'\n'> <'# Files to dlopen/dlpreopen\n'> 
                                            <'dlopen=\''> ($ Id.VSub_DollarName '$dlfiles') <'\'\n'> <'dlpreopen=\''> ($ Id.VSub_DollarName '$dlprefiles') <'\'\n'> 
                                            <'\n'> <'# Directory that this library needs to be installed in:\n'> <'libdir=\''> 
                                            ($ Id.VSub_DollarName '$install_libdir') <'\''>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName '$output')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {<no> <Id.Lit_Comma ','> <yes>} 
                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$installed') <','> ($ Id.VSub_DollarName '$need_relink'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$ECHO')}
                                                {
                                                  (DQ <'relink_command='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                    ) ($ Id.VSub_DollarName '$relink_command') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName '$output')}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [60002 60019]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {
                        (SQ 
                          <
'( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )'
                          >
                        )
                      } {(SQ <'exit $?'>)}
                    )
                  ]
                  spids: [58805 58807 60066 -1]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<link>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                        )
                        (C {<test>} {<relink>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<func_mode_link>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
          ]
          spids: [60079 60104]
        )
      ]
    )
    (command.ShFunction
      name: func_mode_uninstall
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$debug_cmd')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [60136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:files)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [60140]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rmforce)
                  op: assign_op.Equal
                  rhs: {<false>}
                  spids: [60143]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:exit_status)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [60147]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_install_magic)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$magic')}
                  spids: [60160]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (command.Sentence
                              child: 
                                (C {<func_append>} {<RM>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rmforce)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [60193]
                                )
                              ]
                            )
                          ]
                          spids: [60180 60181 60196 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [(C {<func_append>} {<RM>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})]
                          spids: [60199 60201 60212 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_append>} {<files>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                          ]
                          spids: [60215 60216 60227 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$RM'))})
                (C {<func_fatal_help>} {(DQ <'you must specify an RM program'>)})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rmdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [60257]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$files')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                          spids: [60287]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<.>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$dir'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:odir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$objdir')}
                                  spids: [60307]
                                )
                              ]
                            )
                          ]
                          spids: [60291 60304]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:odir)
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$objdir')}
                              spids: [60314]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:name)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                          spids: [60330]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<uninstall>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:odir)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$dir')}
                              spids: [60346]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<clean>} {<Id.Lit_Equals '='>} 
                                      {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$rmdirs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$odir') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [60382 60389 60391 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_append>} {<rmdirs>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$odir'))}
                                    )
                                  ]
                                  spids: [60394 60395 60406 -1]
                                )
                              ]
                            )
                          ]
                          spids: [60355 60368]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-L>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                            (redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<1>}
                                            )
                                          ]
                                        )
                                        (BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-h>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                            (redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<1>}
                                            )
                                          ]
                                        )
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Id.Lit_Colon ':'>})]
                          spids: [60420 60475]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:exit_status)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [60495]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [60481 60492]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {($ Id.VSub_DollarName '$rmforce')})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [60502 60507]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rmfiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$file')}
                          spids: [60517]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$name')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_lalib_p>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_source>} 
                                      {($ Id.VSub_DollarName '$dir') <'/'> 
                                        ($ Id.VSub_DollarName '$name')
                                      }
                                    )
                                    (command.ForEach
                                      iter_name: n
                                      iter_words: [{($ Id.VSub_DollarName '$library_names')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_append>} {<rmfiles>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$odir') <'/'> 
                                                  ($ Id.VSub_DollarName '$n')
                                                )
                                              }
                                            )
                                          ]
                                        )
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_library'))})
                                        (C {<func_append>} {<rmfiles>} 
                                          {
                                            (DQ <' '> ($ Id.VSub_DollarName '$odir') <'/'> 
                                              ($ Id.VSub_DollarName '$old_library')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$opt_mode')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<clean>}]
                                          action: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName '$library_names') 
                                                    <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$dlname') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [60634 60641 60643 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                        )
                                                        (C {<func_append>} {<rmfiles>} 
                                                          {
                                                            (DQ <' '> ($ Id.VSub_DollarName '$odir') 
                                                              <'/'> ($ Id.VSub_DollarName '$dlname')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [60646 60647 60670 -1]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                )
                                                (C {<func_append>} {<rmfiles>} 
                                                  {
                                                    (DQ <' '> ($ Id.VSub_DollarName '$odir') <'/'> 
                                                      ($ Id.VSub_DollarName '$name') <' '> ($ Id.VSub_DollarName '$odir') <'/'> (${ Id.VSub_Name name) <i>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [60619 60620 60705 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<uninstall>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$library_names'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_execute_cmds>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$postuninstall_cmds')
                                                        )
                                                      } {(SQ <'$rmforce || exit_status=1'>)}
                                                    )
                                                  ]
                                                  spids: [60712 60723]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$old_library'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_execute_cmds>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$old_postuninstall_cmds'
                                                          )
                                                        )
                                                      } {(SQ <'$rmforce || exit_status=1'>)}
                                                    )
                                                  ]
                                                  spids: [60745 60756]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [60708 60709 60781 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [60538 60547]
                                )
                              ]
                            )
                          ]
                          spids: [60529 60531 60790 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<func_lalib_p>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_source>} 
                                      {($ Id.VSub_DollarName '$dir') <'/'> 
                                        ($ Id.VSub_DollarName '$name')
                                      }
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                        )
                                                        (C {<test>} {<none>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_append>} {<rmfiles>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                  ($ Id.VSub_DollarName '$pic_object')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [60832 60856]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$non_pic_object')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<none>} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$non_pic_object'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_append>} {<rmfiles>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$dir') <'/'> 
                                                  ($ Id.VSub_DollarName '$non_pic_object')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [60879 60903]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [60803 60812]
                                )
                              ]
                            )
                          ]
                          spids: [60794 60796 60924 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<clean>} {<Id.Lit_Equals '='>} 
                                              {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:noexename)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$name')}
                                          spids: [60948]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$file')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:file)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [60978]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$name'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:noexename)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [60996]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<rmfiles>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$file'))}
                                            )
                                          ]
                                          spids: [60959 60961 61018 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<func_ltwrapper_p>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<func_ltwrapper_executable_p>} 
                                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_ltwrapper_scriptname>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [61059]
                                                        )
                                                      ]
                                                    )
                                                    (C {<func_source>} 
                                                      {
                                                        ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                        )
                                                      }
                                                    )
                                                    (C {<func_append>} {<rmfiles>} 
                                                      {
                                                        (DQ <' '> 
                                                          ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [61040 61049]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:relink_command)
                                                      op: assign_op.Equal
                                                      rhs: (word.Empty)
                                                      spids: [61080]
                                                    )
                                                  ]
                                                )
                                                (C {<func_source>} 
                                                  {($ Id.VSub_DollarName '$dir') <'/'> 
                                                    ($ Id.VSub_DollarName '$noexename')
                                                  }
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<rmfiles>} 
                                              {
                                                (DQ <' '> ($ Id.VSub_DollarName '$odir') <'/'> 
                                                  ($ Id.VSub_DollarName '$name') <' '> ($ Id.VSub_DollarName '$odir') <'/'> (${ Id.VSub_Name name) <S.> ($ Id.VSub_DollarName '$objext')
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<yes>} 
                                                                  {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$fast_install'))}
                                                                )
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$relink_command'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<rmfiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$odir') 
                                                          <'/lt-'> ($ Id.VSub_DollarName '$name')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [61122 61145]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <X> 
                                                                  ($ Id.VSub_DollarName '$noexename')
                                                                )
                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$name'))}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_append>} {<rmfiles>} 
                                                      {
                                                        (DQ <' '> ($ Id.VSub_DollarName '$odir') 
                                                          <'/lt-'> ($ Id.VSub_DollarName '$noexename') <.c>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [61163 61181]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [61028 61037]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [60932 60945]
                                )
                              ]
                            )
                          ]
                          spids: [60928 60929 61206 -1]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {(DQ ($ Id.VSub_DollarName '$RM') <' '> ($ Id.VSub_DollarName '$rmfiles'))} {(SQ <'exit_status=1'>)}
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$rmdirs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_show_eval>} 
                              {(DQ <'rmdir '> ($ Id.VSub_DollarName '$dir') <' >/dev/null 2>&1'>)}
                            )
                          ]
                          spids: [61245 61256]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$exit_status')}
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<uninstall>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                        )
                        (C {<test>} {<clean>} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_DollarName '$opt_mode'))}
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<func_mode_uninstall>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_Plus '+'>
                      arg_word: {(DQ ($ Id.VSub_At '$@'))}
                    )
                )
              }
            )
          ]
          spids: [61282 61307]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$opt_mode'))})
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:help)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$generic_help')}
                  spids: [61336]
                )
              ]
            )
            (C {<func_fatal_help>} {(DQ <'you must specify a MODE'>)})
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$exec_cmd'))})
        (C {<func_fatal_help>} 
          {(DQ <'invalid operation mode \''> ($ Id.VSub_DollarName '$opt_mode') <'\''>)}
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$exec_cmd'))})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<eval>} {<exec>} {(DQ ($ Id.VSub_DollarName '$exec_cmd'))})
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
            )
          ]
          spids: [61370 61381]
        )
      ]
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName '$exit_status')}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
          op: assign_op.Equal
          rhs: {<no>}
          spids: [61440]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_old_libs)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [61443]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_old_libs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Case
                    to_match: {($ Id.VSub_DollarName '$build_libtool_libs')}
                    arms: [
                      (case_arm
                        pat_list: [{<yes>}]
                        action: [(C {<echo>} {<no>})]
                        spids: [61463 61464 61469 -1]
                      )
                      (case_arm
                        pat_list: [{<Id.Lit_Star '*'>}]
                        action: [(C {<echo>} {<yes>})]
                        spids: [61471 61472 61477 -1]
                      )
                    ]
                  )
              )
            }
          spids: [61453]
        )
      ]
    )
  ]
)