(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROGRAM='> name:PROGRAM)
          op: assign_op.Equal
          rhs: {<ltmain.sh>}
          spids: [209]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGE='> name:PACKAGE)
          op: assign_op.Equal
          rhs: {<libtool>}
          spids: [212]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VERSION='> name:VERSION)
          op: assign_op.Equal
          rhs: {(DQ <'2.2.6b Debian-2.2.6b-2'>)}
          spids: [215]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TIMESTAMP='> name:TIMESTAMP)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [220]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package_revision='> name:package_revision)
          op: assign_op.Equal
          rhs: {<1.3017>}
          spids: [224]
        )
      ]
      redirects: []
    )
    (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
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name ZSH_VERSION>
                                var_name: ZSH_VERSION
                                suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            )
                          }
                        )
                        (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 {<emulate>} {<sh>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NULLCMD='> name:NULLCMD)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [268]
                )
              ]
              redirects: []
            )
            (C {<alias>} {<-g>} {(SQ <'${1+"$@"}'>) <Id.Lit_Equals '='> (SQ <'"$@"'>)})
            (C {<setopt>} {<NO_GLOB_SUBST>})
          ]
          spids: [231 260]
        )
      ]
      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'>}
                      )
                    ]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          arms: [
            (case_arm
              pat_list: [{<Id.Lit_Star '*'> <posix> <Id.Lit_Star '*'>}]
              action: [(C {<set>} {<-o>} {<posix>})]
              spids: [317 320 327 -1]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BIN_SH='> name:BIN_SH)
                  op: assign_op.Equal
                  rhs: {<xpg4>}
                  spids: [333]
                )
              ]
              redirects: []
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<BIN_SH>})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DUALCASE='> name:DUALCASE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [344]
                )
              ]
              redirects: []
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<DUALCASE>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lt_user_locale='> name:lt_user_locale)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [368]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lt_safe_locale='> name:lt_safe_locale)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [370]
        )
      ]
      redirects: []
    )
    (command.ForEach
      iter_names: [lt_var]
      iterable: 
        (for_iter.Words
          words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
        )
      body: 
        (command.DoGroup
          children: [
            (C {<eval>} 
              {
                (DQ <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'{'> ($ Id.VSub_DollarName lt_var) <'+set}'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' = set; then\n'> <'          save_'> ($ Id.VSub_DollarName lt_var) <'='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) ($ Id.VSub_DollarName lt_var) <'\n'> <'          '> ($ Id.VSub_DollarName lt_var) <'=C\n'> <'\t  export '> 
                  ($ Id.VSub_DollarName lt_var) <'\n'> <'\t  lt_user_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName lt_var) <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <save_> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'lt_var; '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <lt_user_locale> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                  <'\t  lt_safe_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName lt_var) 
                  <'=C; '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_safe_locale> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'\n'> <'\tfi'>
                )
              }
            )
          ]
        )
      redirects: []
    )
    (C {($ Id.VSub_DollarName lt_unset)} {<CDPATH>})
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name CP>
          var_name: CP
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'cp -f'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name ECHO>
          var_name: ECHO
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <echo>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name EGREP>
          var_name: EGREP
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'/bin/grep -E'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name FGREP>
          var_name: FGREP
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'/bin/grep -F'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name GREP>
          var_name: GREP
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'/bin/grep'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name LN_S>
          var_name: LN_S
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'ln -s'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name MAKE>
          var_name: MAKE
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <make>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name MKDIR>
          var_name: MKDIR
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <mkdir>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name MV>
          var_name: MV
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'mv -f'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name RM>
          var_name: RM
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'rm -f'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name SED>
          var_name: SED
          suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'/bin/sed'>)})
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name SHELL>
          var_name: SHELL
          suffix_op: 
            (suffix_op.Unary
              op: <Id.VTest_Equals _>
              arg_word: 
                {
                  (DQ 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name CONFIG_SHELL>
                      var_name: CONFIG_SHELL
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_Hyphen _>
                          arg_word: {<Id.Lit_Slash '/'> <bin> <Id.Lit_Slash '/'> <sh>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
            )
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          left: <Id.Left_DollarBrace '${'>
          token: <Id.VSub_Name Xsed>
          var_name: Xsed
          suffix_op: 
            (suffix_op.Unary
              op: <Id.VTest_Equals _>
              arg_word: {(DQ ($ Id.VSub_DollarName SED) <' -e 1s/^X//'>)}
            )
          right: <Id.Right_DollarBrace '}'>
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_SUCCESS='> name:EXIT_SUCCESS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [594]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_FAILURE='> name:EXIT_FAILURE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [597]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_MISMATCH='> name:EXIT_MISMATCH)
          op: assign_op.Equal
          rhs: {<63>}
          spids: [600]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_SKIP='> name:EXIT_SKIP)
          op: assign_op.Equal
          rhs: {<77>}
          spids: [606]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_status='> name:exit_status)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName EXIT_SUCCESS)}
          spids: [613]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lt_nl='> name:lt_nl)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
          spids: [620]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
          op: assign_op.Equal
          rhs: {(DQ <' \t'> ($ Id.VSub_DollarName lt_nl))}
          spids: [625]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dirname='> name:dirname)
          op: assign_op.Equal
          rhs: {(DQ <'s,/[^/]*'> <Id.Lit_Dollar '$'> <',,'>)}
          spids: [632]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'basename='> name:basename)
          op: assign_op.Equal
          rhs: {(DQ <'s,^.*/,,'>)}
          spids: [639]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: func_dirname_and_basename
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_dirname_result='>
                      name: func_dirname_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName ECHO)} {(DQ <X> (${ Id.VSub_Number 1))})
                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName dirname))}
                              )
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [693]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName func_dirname_result))} 
                              {<Id.Lit_Equals '='>} {(DQ <X> (${ Id.VSub_Number 1))}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_dirname_result='>
                              name: func_dirname_result
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Number 3))}
                          spids: [740]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [718 737]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_dirname_result='>
                          name: func_dirname_result
                        )
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result) (${ Id.VSub_Number 2))}
                      spids: [751]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_basename_result='>
                      name: func_basename_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName ECHO)} {(DQ <X> (${ Id.VSub_Number 1))})
                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName basename))}
                              )
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [763]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number 0))}
          spids: [809]
        )
      ]
      redirects: []
    )
    (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName progpath))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progname='> name:progname)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName func_basename_result)}
          spids: [830]
        )
      ]
      redirects: []
    )
    (command.Case
      to_match: {($ Id.VSub_DollarName progname)}
      arms: [
        (case_arm
          pat_list: [{<-> <Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progname='> name:progname)
                  op: assign_op.Equal
                  rhs: {<'./'> ($ Id.VSub_DollarName progname)}
                  spids: [844]
                )
              ]
              redirects: []
            )
          ]
          spids: [840 842 848 -1]
        )
      ]
      redirects: []
    )
    (command.Case
      to_match: {($ Id.VSub_DollarName progpath)}
      arms: [
        (case_arm
          pat_list: [
            {<Id.Lit_LBracket '['> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <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 '\\\\'> ch:'\\') <Id.Lit_Star '*'>
            }
          ]
          action: []
          spids: [863 875 877 -1]
        )
        (case_arm
          pat_list: [
            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
            }
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progdir='> name:progdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                  spids: [889]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progdir='> 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>})]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [893]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName progdir) <'/'> ($ Id.VSub_DollarName progname))}
                  spids: [909]
                )
              ]
              redirects: []
            )
          ]
          spids: [880 886 917 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_IFS='> name:save_IFS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                  spids: [924]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [930]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [progdir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PATH)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName save_IFS))}
                          spids: [946]
                        )
                      ]
                      redirects: []
                    )
                    (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>
                        )
                      ]
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName save_IFS))}
                  spids: [970]
                )
              ]
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'progdir='> name:progdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<pwd>})
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [986]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName progdir) <'/'> ($ Id.VSub_DollarName progname))}
                  spids: [994]
                )
              ]
              redirects: []
            )
          ]
          spids: [920 921 1002 -1]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Xsed='> name:Xsed)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name SED)) (SQ <' -e 1s/^X//'>)}
          spids: [1013]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_quote_subst='> name:sed_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s/\\([`"$\\\\]\\)/\\\\\\1/g'>)}
          spids: [1023]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'double_quote_subst='> name:double_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s/\\(["`\\\\]\\)/\\\\\\1/g'>)}
          spids: [1032]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bs='> name:bs)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\'>)}
          spids: [1053]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bs2='> name:bs2)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\'>)}
          spids: [1058]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bs4='> name:bs4)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\\\\\\\\\'>)}
          spids: [1063]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dollar='> name:dollar)
          op: assign_op.Equal
          rhs: {(SQ <'\\$'>)}
          spids: [1068]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'sed_double_backslash='>
              name: sed_double_backslash
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'  s/'> ($ Id.VSub_DollarName bs4) <'/&'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'/g\n'> <'  s/^'> ($ Id.VSub_DollarName bs2) ($ Id.VSub_DollarName dollar) <'/'> 
                ($ Id.VSub_DollarName bs) <'&/\n'> <'  s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'([^'> 
                ($ Id.VSub_DollarName bs) <']'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <')'> 
                ($ Id.VSub_DollarName bs2) ($ Id.VSub_DollarName dollar) <'/'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <1> ($ Id.VSub_DollarName bs2) ($ Id.VSub_DollarName bs) ($ Id.VSub_DollarName dollar) <'/g\n'> <'  s/'> 
                <Id.Lit_BadBackslash '\\'> <'n//g'>
              )
            }
          spids: [1073]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_dry_run='> name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1113]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_help='> name:opt_help)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1116]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_quiet='> name:opt_quiet)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1119]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_verbose='> name:opt_verbose)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1122]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_warning='> name:opt_warning)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [1125]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: func_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ ($ Id.VSub_DollarName progname) 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name mode>
                    var_name: mode
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<': '>})
                    right: <Id.Right_DollarBrace '}'>
                  ) ($ Id.VSub_DollarName mode) <': '> ($ Id.VSub_Star '*')
                )
              }
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_verbose
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName opt_verbose)})
                (C {<func_echo>} 
                  {
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 1>
                      var_name: 1
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_Plus _>
                          arg_word: {(DQ ($ Id.VSub_At '@'))}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ ($ Id.VSub_DollarName progname) 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name mode>
                      var_name: mode
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<': '>})
                      right: <Id.Right_DollarBrace '}'>
                    ) ($ Id.VSub_DollarName mode) <': '>
                  ) 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_warning
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName opt_warning)})
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName ECHO)}
                    {
                      (DQ ($ Id.VSub_DollarName progname) 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name mode>
                          var_name: mode
                          suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<': '>})
                          right: <Id.Right_DollarBrace '}'>
                        ) ($ Id.VSub_DollarName mode) <': warning: '>
                      ) 
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                  redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  more_env: []
                  do_fork: T
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_fatal_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Number 1>
                  var_name: 1
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_fatal_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Number 1>
                  var_name: 1
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<func_fatal_error>} {(DQ ($ Id.VSub_DollarName help))})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                ($ Id.VSub_DollarName progname) <' --help\' for more information.'>
              )
            }
          spids: [1370]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: func_grep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (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>})
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_mkdir_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'my_directory_path='>
                      name: my_directory_path
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [1431]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_dir_list='> name:my_dir_list)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [1437]
                )
              ]
              redirects: []
            )
            (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 my_directory_path))})
                                (C {<test>} {(DQ ($ Id.VSub_DollarName opt_dry_run))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <':'>)}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName my_directory_path)}
                      arms: [
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_directory_path='>
                                      name: my_directory_path
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'./'> ($ Id.VSub_DollarName my_directory_path))}
                                  spids: [1486]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1482 1484 1492 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName my_directory_path))}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_dir_list='>
                                      name: my_dir_list
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName my_directory_path) <':'> 
                                        ($ Id.VSub_DollarName my_dir_list)
                                      )
                                    }
                                  spids: [1527]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName my_directory_path)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                  action: []
                                  spids: [1546 1549 1551 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [1553 1554 1558 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_directory_path='>
                                      name: my_directory_path
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                {(DQ <X> ($ Id.VSub_DollarName my_directory_path))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName dirname))}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [1568]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'my_dir_list='>
                              name: my_dir_list
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName ECHO)} 
                                        {(DQ <X> ($ Id.VSub_DollarName my_dir_list))}
                                      )
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} {(SQ <'s,:*$,,'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [1594]
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'save_mkdir_p_IFS='>
                                  name: save_mkdir_p_IFS
                                )
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                              spids: [1618]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {(SQ <':'>)}
                          spids: [1624]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [my_dir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName my_dir_list)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName save_mkdir_p_IFS))}
                                  spids: [1642]
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName MKDIR)}
                                    {(DQ ($ Id.VSub_DollarName my_dir))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (C {<Id.Lit_Colon ':'>})
                              ]
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName save_mkdir_p_IFS))}
                          spids: [1677]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName my_directory_path))})
                        (C {<func_fatal_error>} 
                          {
                            (DQ <'Failed to create '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                                ch: '`'
                              ) ($ Id.VSub_Number 1) <'\''>
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [1441 1467]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_mktempdir
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_template='> name:my_template)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name TMPDIR>
                          var_name: TMPDIR
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Hyphen _>
                              arg_word: {<Id.Lit_Slash '/'> <tmp>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        ) <'/'> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Hyphen _>
                              arg_word: {($ Id.VSub_DollarName progname)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  spids: [1736]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName opt_dry_run))} {<Id.Lit_Equals '='>} 
                              {(DQ <':'>)}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_tmpdir='> name:my_tmpdir)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name my_template) <-> ($ Id.VSub_Dollar '$'))}
                          spids: [1776]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1754 1769]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_tmpdir='> name:my_tmpdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                words: [
                                  {<mktemp>}
                                  {<-d>}
                                  {(DQ (${ Id.VSub_Name my_template) <-XXXXXXXX>)}
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [1794]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName my_tmpdir))}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'my_tmpdir='>
                                  name: my_tmpdir
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (${ Id.VSub_Name my_template) <-> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name RANDOM>
                                      var_name: RANDOM
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op: <Id.VTest_Hyphen _>
                                          arg_word: {<0>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) ($ Id.VSub_Dollar '$')
                                  )
                                }
                              spids: [1835]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'save_mktempdir_umask='>
                                  name: save_mktempdir_umask
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: (C {<umask>})
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              spids: [1851]
                            )
                          ]
                          redirects: []
                        )
                        (C {<umask>} {<0077>})
                        (C {($ Id.VSub_DollarName MKDIR)} {(DQ ($ Id.VSub_DollarName my_tmpdir))})
                        (C {<umask>} {($ Id.VSub_DollarName save_mktempdir_umask)})
                      ]
                      spids: [1815 1828]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName my_tmpdir))})
                    (C {<func_fatal_error>} 
                      {
                        (DQ <'cannot create temporary directory '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName my_tmpdir) <'\''>
                        )
                      }
                    )
                  ]
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {($ Id.VSub_DollarName ECHO)} {(DQ <X> ($ Id.VSub_DollarName my_tmpdir))})
                (C {($ Id.VSub_DollarName Xsed)})
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_quote_for_eval
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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 '\\\\'>
                        ch: '\\'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                        ch: '"'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_RBracket ']'> 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_quote_for_eval_unquoted_result='>
                              name: func_quote_for_eval_unquoted_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName ECHO)} {(DQ <X> ($ Id.VSub_Number 1))})
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                      )
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [1969]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1958 1966 1991 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_quote_for_eval_unquoted_result='>
                              name: func_quote_for_eval_unquoted_result
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1))}
                          spids: [1998]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1994 1995 2003 -1]
                )
              ]
              redirects: []
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName func_quote_for_eval_unquoted_result)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\['>
                        ch: '['
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'> ch:'~') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\#'>
                        ch: '#'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'> ch:'^') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\&'>
                        ch: '&'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\('>
                        ch: '('
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\{'>
                        ch: '{'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\|'>
                        ch: '|'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\<'>
                        ch: '<'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'> ch:'>') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\?'>
                        ch: '?'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                        ch: ' '
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\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
                              left: <Id.Lit_VarLike 'func_quote_for_eval_result='>
                              name: func_quote_for_eval_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                ($ Id.VSub_DollarName func_quote_for_eval_unquoted_result) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              )
                            }
                          spids: [2069]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2037 2066 2077 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_quote_for_eval_result='>
                              name: func_quote_for_eval_result
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_unquoted_result))}
                          spids: [2084]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2080 2081 -1 2090]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_quote_for_expand
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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 '\\\\'>
                        ch: '\\'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                        ch: '"'
                      ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_arg='> name:my_arg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName ECHO)} {(DQ <X> ($ Id.VSub_Number 1))})
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName double_quote_subst))} {<-e>} {(DQ ($ Id.VSub_DollarName sed_double_backslash))}
                                      )
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [2130]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2120 2127 2163 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_arg='> name:my_arg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1))}
                          spids: [2170]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2166 2167 2175 -1]
                )
              ]
              redirects: []
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName my_arg)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\['>
                        ch: '['
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'> ch:'~') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\#'>
                        ch: '#'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'> ch:'^') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\&'>
                        ch: '&'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\('>
                        ch: '('
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\{'>
                        ch: '{'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\|'>
                        ch: '|'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\<'>
                        ch: '<'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'> ch:'>') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\?'>
                        ch: '?'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                        ch: ' '
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\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 left:<Id.Lit_VarLike 'my_arg='> name:my_arg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                ($ Id.VSub_DollarName my_arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              )
                            }
                          spids: [2237]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2205 2234 2245 -1]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_quote_for_expand_result='>
                      name: func_quote_for_expand_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName my_arg))}
                  spids: [2252]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_show_eval
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_cmd='> name:my_cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [2281]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_fail_exp='> name:my_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 2>
                          var_name: 2
                          suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  spids: [2287]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C 
                  {
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name opt_silent>
                      var_name: opt_silent
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<false>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName my_cmd))})
                    (C {<eval>} 
                      {(DQ <'func_echo '> ($ Id.VSub_DollarName func_quote_for_expand_result))}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name opt_dry_run>
                                  var_name: opt_dry_run
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_Hyphen _>
                                      arg_word: {<false>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              }
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
                  spids: [2328 2337]
                )
              ]
              else_action: [
                (C {<eval>} {(DQ ($ Id.VSub_DollarName my_cmd))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_status='> name:my_status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                      spids: [2352]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: (C {<test>} {(DQ ($ Id.VSub_DollarName my_status))} {<-eq>} {<0>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Sentence
                          child: (C {<Id.Lit_Colon ':'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      spids: [2356 2369]
                    )
                  ]
                  else_action: [
                    (C {<eval>} 
                      {
                        (DQ <'(exit '> ($ Id.VSub_DollarName my_status) <'); '> 
                          ($ Id.VSub_DollarName my_fail_exp)
                        )
                      }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_show_eval_locale
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_cmd='> name:my_cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [2416]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_fail_exp='> name:my_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 2>
                          var_name: 2
                          suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  spids: [2422]
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C 
                  {
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name opt_silent>
                      var_name: opt_silent
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<false>})
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName my_cmd))})
                    (C {<eval>} 
                      {(DQ <'func_echo '> ($ Id.VSub_DollarName func_quote_for_expand_result))}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name opt_dry_run>
                                  var_name: opt_dry_run
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_Hyphen _>
                                      arg_word: {<false>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              }
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
                  spids: [2463 2472]
                )
              ]
              else_action: [
                (C {<eval>} 
                  {
                    (DQ ($ Id.VSub_DollarName lt_user_locale) <'\n'> <'\t    '> 
                      ($ Id.VSub_DollarName my_cmd)
                    )
                  }
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_status='> name:my_status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                      spids: [2490]
                    )
                  ]
                  redirects: []
                )
                (C {<eval>} {(DQ ($ Id.VSub_DollarName lt_safe_locale))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: (C {<test>} {(DQ ($ Id.VSub_DollarName my_status))} {<-eq>} {<0>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Sentence
                          child: (C {<Id.Lit_Colon ':'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      spids: [2501 2514]
                    )
                  ]
                  else_action: [
                    (C {<eval>} 
                      {
                        (DQ <'(exit '> ($ Id.VSub_DollarName my_status) <'); '> 
                          ($ Id.VSub_DollarName my_fail_exp)
                        )
                      }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_version
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName SED)}
                {<-n>}
                {(SQ <'/^# '>) ($ Id.VSub_DollarName PROGRAM) 
                  (SQ <' (GNU /,/# warranty; / {\n'> <'        s/^# //\n'> <'\ts/^# *$//\n'> 
                    <'        s/\\((C)\\)[ 0-9,-]*\\( [1-9][0-9]*\\)/\\1\\2/\n'> <'        p\n'> <'     }'>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName SED)}
                {<-n>}
                {
                  (SQ <'/^# Usage:/,/# -h/ {\n'> <'        s/^# //\n'> <'\ts/^# *$//\n'> 
                    <'\ts/\\$progname/'>
                  ) ($ Id.VSub_DollarName progname) (SQ <'/\n'> <'\tp\n'> <'    }'>)
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {($ Id.VSub_DollarName ECHO)})
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'run '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                  ($ Id.VSub_DollarName progname) <' --help | more\' for full usage'>
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName SED)}
                {<-n>}
                {
                  (SQ <'/^# Usage:/,/# Report bugs to/ {\n'> <'        s/^# //\n'> <'\ts/^# *$//\n'> 
                    <'\ts*\\$progname*'>
                  ) ($ Id.VSub_DollarName progname) (SQ <'*\n'> <'\ts*\\$host*'>) (DQ ($ Id.VSub_DollarName host)) 
                  (SQ <'*\n'> <'\ts*\\$SHELL*'>) (DQ ($ Id.VSub_DollarName SHELL)) (SQ <'*\n'> <'\ts*\\$LTCC*'>) (DQ ($ Id.VSub_DollarName LTCC)) 
                  (SQ <'*\n'> <'\ts*\\$LTCFLAGS*'>) (DQ ($ Id.VSub_DollarName LTCFLAGS)) (SQ <'*\n'> <'\ts*\\$LD*'>) (DQ ($ Id.VSub_DollarName LD)) 
                  (SQ <'*\n'> <'\ts/\\$with_gnu_ld/'>) (DQ ($ Id.VSub_DollarName with_gnu_ld)) (SQ <'/\n'> <'\ts/\\$automake_version/'>) 
                  (DQ 
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              child: (C {<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
                          stderr_indices: []
                        )
                      right: <Id.Backtick_Right '`'>
                    )
                  ) (SQ <'/\n'> <'\ts/\\$autoconf_version/'>) 
                  (DQ 
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              child: (C {<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
                          stderr_indices: []
                        )
                      right: <Id.Backtick_Right '`'>
                    )
                  ) (SQ <'/\n'> <'\tp\n'> <'     }'>)
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_missing_arg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<func_error>} {(DQ <'missing argument for '> ($ Id.VSub_Number 1))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_cmd='> name:exit_cmd)
                  op: assign_op.Equal
                  rhs: {<Id.ControlFlow_Exit exit>}
                  spids: [2805]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_cmd='> name:exit_cmd)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [2811]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {(DQ <X> ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<X--no-reexec>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<shift>})]
          spids: [2822 2836]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {(DQ <X> ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                      {<X--fallback-echo>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Id.Lit_Colon ':'>})]
          spids: [2845 2859]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} 
                      {
                        (DQ <X> 
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (BraceGroup
                                left: <Id.Lit_LBrace '{'>
                                children: [
                                  (command.Sentence
                                    child: (C {($ Id.VSub_DollarName ECHO)} {(SQ <'\\t'>)})
                                    terminator: <Id.Op_Semi _>
                                  )
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                right: <Id.Lit_RBrace '}'>
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        )
                      } {<Id.Lit_Equals '='>} {(SQ <'X\\t'>)}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Id.Lit_Colon ':'>})]
          spids: [2868 2902]
        )
      ]
      else_action: [
        (C {<exec>} {($ Id.VSub_DollarName SHELL)} {(DQ ($ Id.VSub_DollarName progpath))} {<--no-reexec>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {(DQ <X> ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} 
                      {<X--fallback-echo>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<shift>})
            (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: 2971
                      stdin_parts: [($ Id.VSub_Star '*') <'\n'>]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          spids: [2939 2953]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'magic='> name:magic)
          op: assign_op.Equal
          rhs: {(DQ <'%%%MAGIC variable%%%'>)}
          spids: [2980]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'magic_exe='> name:magic_exe)
          op: assign_op.Equal
          rhs: {(DQ <'%%%MAGIC EXE variable%%%'>)}
          spids: [2985]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nonopt='> name:nonopt)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [2997]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'execute_dlfiles='> name:execute_dlfiles)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [2999]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preserve_args='> name:preserve_args)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [3001]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo2o='> name:lo2o)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.lo> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'/.'> (${ Id.VSub_Name objext) <'/'>
              )
            }
          spids: [3003]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o2lo='> name:o2lo)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.> 
                (${ Id.VSub_Name objext) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'/.lo/'>
              )
            }
          spids: [3016]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extracted_archives='> name:extracted_archives)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [3028]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extracted_serial='> name:extracted_serial)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3030]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_dry_run='> name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3034]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_duplicate_deps='> name:opt_duplicate_deps)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3037]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_silent='> name:opt_silent)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3040]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_debug='> name:opt_debug)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [3043]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [3056]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: func_fatal_configuration
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Number 1>
                  var_name: 1
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<func_error>} 
              {
                (DQ <'See the '> ($ Id.VSub_DollarName PACKAGE) 
                  <' documentation for more information.'>
                )
              }
            )
            (C {<func_fatal_error>} {(DQ <'Fatal configuration error.'>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_config
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_begincf='> name:re_begincf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### BEGIN LIBTOOL'>)}
                  spids: [3120]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_endcf='> name:re_endcf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### END LIBTOOL'>)}
                  spids: [3126]
                )
              ]
              redirects: []
            )
            (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 '\\$'> ch:'$') <d>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ForEach
              iter_names: [tagname]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName taglist)}])
              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 '\\$'> ch:'$') <'/,/'> 
                            ($ Id.VSub_DollarName re_endcf) <' TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'/p'>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_DollarName progpath))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                )
              redirects: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_features
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName ECHO)} {(DQ <'host: '> ($ Id.VSub_DollarName host))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {($ Id.VSub_DollarName ECHO)} {(DQ <'enable shared libraries'>)})]
                  spids: [3231 3244]
                )
              ]
              else_action: [(C {($ Id.VSub_DollarName ECHO)} {(DQ <'disable shared libraries'>)})]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {($ Id.VSub_DollarName ECHO)} {(DQ <'enable static libraries'>)})]
                  spids: [3267 3280]
                )
              ]
              else_action: [(C {($ Id.VSub_DollarName ECHO)} {(DQ <'disable static libraries'>)})]
              redirects: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_enable_tag
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tagname='> name:tagname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [3335]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_begincf='> name:re_begincf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                      )
                    }
                  spids: [3342]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_endcf='> name:re_endcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### END LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                      )
                    }
                  spids: [3350]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_extractcf='> name:sed_extractcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'/'> ($ Id.VSub_DollarName re_begincf) <'/,/'> 
                        ($ Id.VSub_DollarName re_endcf) <'/p'>
                      )
                    }
                  spids: [3358]
                )
              ]
              redirects: []
            )
            (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: [3380 3388 3399 -1]
                )
              ]
              redirects: []
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName tagname)}
              arms: [
                (case_arm pat_list:[{<CC>}] action:[] spids:[3421 3422 3424 -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>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'taglist='>
                                      name: taglist
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName taglist) <' '> 
                                        ($ Id.VSub_DollarName tagname)
                                      )
                                    }
                                  spids: [3453]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'extractedcf='>
                                      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))}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [3478]
                                )
                              ]
                              redirects: []
                            )
                            (C {<eval>} {(DQ ($ Id.VSub_DollarName extractedcf))})
                          ]
                          spids: [3431 3450]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'ignoring unknown tag '> ($ Id.VSub_DollarName tagname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3427 3428 3521 -1]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (BraceGroup
      left: <Id.Lit_LBrace '{'>
      children: [
        (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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3550 3557 3583 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3586 3599 3625 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3628 3641 3667 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3670 3681 3707 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3710 3723 3749 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3752 3759 3785 -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
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 1>
                          var_name: 1
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {(DQ ($ Id.VSub_At '@'))}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [3788 3805 3831 -1]
            )
          ]
          redirects: []
        )
        (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 left:<Id.Lit_VarLike 'opt='> name:opt)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                      spids: [3858]
                    )
                  ]
                  redirects: []
                )
                (C {<shift>})
                (command.Case
                  to_match: {($ Id.VSub_DollarName opt)}
                  arms: [
                    (case_arm
                      pat_list: [{<--config>}]
                      action: [(C {<func_config>})]
                      spids: [3875 3876 3880 -1]
                    )
                    (case_arm
                      pat_list: [{<--debug>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'preserve_args='>
                                  name: preserve_args
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName preserve_args) <' '> 
                                    ($ Id.VSub_DollarName opt)
                                  )
                                }
                              spids: [3887]
                            )
                          ]
                          redirects: []
                        )
                        (C {<func_echo>} {(DQ <'enabling shell trace mode'>)})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'opt_debug='>
                                  name: opt_debug
                                )
                              op: assign_op.Equal
                              rhs: {(SQ <'set -x'>)}
                              spids: [3902]
                            )
                          ]
                          redirects: []
                        )
                        (C {($ Id.VSub_DollarName opt_debug)})
                      ]
                      spids: [3884 3885 3911 -1]
                    )
                    (case_arm
                      pat_list: [{<-dlopen>}]
                      action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp Id.Op_DAmp]
                          children: [
                            (C {<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-eq>} {<0>})
                            (C {<func_missing_arg>} {(DQ ($ Id.VSub_DollarName opt))})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'execute_dlfiles='>
                                  name: execute_dlfiles
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName execute_dlfiles) <' '> ($ Id.VSub_Number 1))
                                }
                              spids: [3941]
                            )
                          ]
                          redirects: []
                        )
                        (C {<shift>})
                      ]
                      spids: [3915 3916 3952 -1]
                    )
                    (case_arm
                      pat_list: [{<--dry-run>} {<-n>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'opt_dry_run='>
                                  name: opt_dry_run
                                )
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [3963]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [3956 3961 3966 -1]
                    )
                    (case_arm
                      pat_list: [{<--features>}]
                      action: [(C {<func_features>})]
                      spids: [3969 3970 3974 -1]
                    )
                    (case_arm
                      pat_list: [{<--finish>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                              op: assign_op.Equal
                              rhs: {(DQ <finish>)}
                              spids: [3980]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [3977 3978 3985 -1]
                    )
                    (case_arm
                      pat_list: [{<--mode>}]
                      action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp Id.Op_DAmp]
                          children: [
                            (C {<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-eq>} {<0>})
                            (C {<func_missing_arg>} {(DQ ($ Id.VSub_DollarName opt))})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_Number 1)}
                          arms: [
                            (case_arm
                              pat_list: [{<clean>}]
                              action: []
                              spids: [4026 4027 4029 -1]
                            )
                            (case_arm
                              pat_list: [{<compile>}]
                              action: []
                              spids: [4032 4033 4035 -1]
                            )
                            (case_arm
                              pat_list: [{<execute>}]
                              action: []
                              spids: [4038 4039 4041 -1]
                            )
                            (case_arm
                              pat_list: [{<finish>}]
                              action: []
                              spids: [4044 4045 4047 -1]
                            )
                            (case_arm
                              pat_list: [{<install>}]
                              action: []
                              spids: [4050 4051 4053 -1]
                            )
                            (case_arm
                              pat_list: [{<link>}]
                              action: []
                              spids: [4056 4057 4059 -1]
                            )
                            (case_arm
                              pat_list: [{<relink>}]
                              action: []
                              spids: [4062 4063 4065 -1]
                            )
                            (case_arm
                              pat_list: [{<uninstall>}]
                              action: []
                              spids: [4068 4069 4071 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {(DQ <'invalid argument for '> ($ Id.VSub_DollarName opt))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'exit_cmd='>
                                          name: exit_cmd
                                        )
                                      op: assign_op.Equal
                                      rhs: {<Id.ControlFlow_Exit exit>}
                                      spids: [4090]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                              spids: [4079 4080 4097 -1]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number 1))}
                              spids: [4104]
                            )
                          ]
                          redirects: []
                        )
                        (C {<shift>})
                      ]
                      spids: [3989 3990 4113 -1]
                    )
                    (case_arm
                      pat_list: [{<--preserve-dup-deps>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'opt_duplicate_deps='>
                                  name: opt_duplicate_deps
                                )
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4121]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [4117 4118 4124 -1]
                    )
                    (case_arm
                      pat_list: [{<--quiet>} {<--silent>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'preserve_args='>
                                  name: preserve_args
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName preserve_args) <' '> 
                                    ($ Id.VSub_DollarName opt)
                                  )
                                }
                              spids: [4133]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'opt_silent='>
                                  name: opt_silent
                                )
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4141]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [4128 4131 4145 -1]
                    )
                    (case_arm
                      pat_list: [{<--verbose>} {<-v>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'preserve_args='>
                                  name: preserve_args
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName preserve_args) <' '> 
                                    ($ Id.VSub_DollarName opt)
                                  )
                                }
                              spids: [4155]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'opt_silent='>
                                  name: opt_silent
                                )
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4163]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [4149 4153 4167 -1]
                    )
                    (case_arm
                      pat_list: [{<--tag>}]
                      action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp Id.Op_DAmp]
                          children: [
                            (C {<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-eq>} {<0>})
                            (C {<func_missing_arg>} {(DQ ($ Id.VSub_DollarName opt))})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'preserve_args='>
                                  name: preserve_args
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName preserve_args) <' '> 
                                    ($ Id.VSub_DollarName opt) <' '> ($ Id.VSub_Number 1)
                                  )
                                }
                              spids: [4197]
                            )
                          ]
                          redirects: []
                        )
                        (C {<func_enable_tag>} {(DQ ($ Id.VSub_Number 1))})
                        (C {<shift>})
                      ]
                      spids: [4171 4172 4220 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<-dlopen> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                        {<--mode> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                        {<--tag> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                      ]
                      action: [
                        (C {<func_opt_split>} {(DQ ($ Id.VSub_DollarName opt))})
                        (C {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName func_opt_split_opt))} 
                          {(DQ ($ Id.VSub_DollarName func_opt_split_arg))} 
                          {
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Number 1>
                              var_name: 1
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VTest_Plus _>
                                  arg_word: {(DQ ($ Id.VSub_At '@'))}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          }
                        )
                        (C {<shift>})
                      ]
                      spids: [4228 4239 4273 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}
                        {<-h>}
                      ]
                      action: [(C {<func_usage>})]
                      spids: [4277 4281 4285 -1]
                    )
                    (case_arm
                      pat_list: [{<--help>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_help='> name:opt_help)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4291]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [4288 4289 4294 -1]
                    )
                    (case_arm
                      pat_list: [{<--version>}]
                      action: [(C {<func_version>})]
                      spids: [4297 4298 4302 -1]
                    )
                    (case_arm
                      pat_list: [{<-> <Id.Lit_Star '*'>}]
                      action: [
                        (C {<func_fatal_help>} 
                          {
                            (DQ <'unrecognized option '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                                ch: '`'
                              ) ($ Id.VSub_DollarName opt) <'\''>
                            )
                          }
                        )
                      ]
                      spids: [4306 4308 4319 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nonopt='> name:nonopt)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName opt))}
                              spids: [4326]
                            )
                          ]
                          redirects: []
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Break break>
                        )
                      ]
                      spids: [4323 4324 4335 -1]
                    )
                  ]
                  redirects: []
                )
              ]
            )
          redirects: []
        )
        (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 '*'>}
              ]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                          name: opt_duplicate_compiler_generated_deps
                        )
                      op: assign_op.Equal
                      rhs: {<Id.Lit_Colon ':'>}
                      spids: [4381]
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [4353 4374 4385 -1]
            )
            (case_arm
              pat_list: [{<Id.Lit_Star '*'>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                          name: opt_duplicate_compiler_generated_deps
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName opt_duplicate_deps)}
                      spids: [4392]
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [4388 4389 4396 -1]
            )
          ]
          redirects: []
        )
        (C {($ Id.VSub_DollarName exit_cmd)} {($ Id.VSub_DollarName EXIT_FAILURE)})
      ]
      redirects: []
      right: <Id.Lit_RBrace '}'>
    )
    (command.ShFunction
      name: func_check_version_match
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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: 4512
                                              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'>
                                              ]
                                            )
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [4473 4484]
                                )
                              ]
                              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: 4546
                                          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'>
                                          ]
                                        )
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [4454 4470]
                        )
                      ]
                      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: 4585
                                  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'>
                                  ]
                                )
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_MISMATCH)}
                    )
                  ]
                  spids: [4435 4451]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {($ Id.VSub_DollarName opt_help)})
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<func_check_version_match>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                )
                                (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_fatal_configuration>} 
                      {(DQ <'not configured to build any kind of library'>)}
                    )
                  ]
                  spids: [4627 4654]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName mode))})
                (C {<func_fatal_error>} {(DQ <'error: you must specify a MODE.'>)})
              ]
            )
            (C {<eval>} 
              {<Id.Lit_VarLike 'std_shrext='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
              }
            )
            (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 execute_dlfiles))})
                                (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<execute>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_error>} 
                      {
                        (DQ <'unrecognized option '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'-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>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
                    )
                  ]
                  spids: [4705 4729]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'generic_help='> name:generic_help)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName help))}
                  spids: [4764]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                        ($ Id.VSub_DollarName progname) <' --help --mode='> ($ Id.VSub_DollarName mode) <'\' for more information.'>
                      )
                    }
                  spids: [4770]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
    )
    (command.ShFunction
      name: func_lalib_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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'>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (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>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  negated: F
                  stderr_indices: []
                )
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_lalib_unsafe_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lalib_p='> name:lalib_p)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [4878]
                )
              ]
              redirects: []
            )
            (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))}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForEach
                      iter_names: [lalib_p_l]
                      iterable: (for_iter.Words words:[{<1>} {<2>} {<3>} {<4>}])
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<read>} {<lalib_p_line>})
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName lalib_p_line))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\#'>
                                        ch: '#'
                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Generated> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                        ch: ' '
                                      ) <by> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Star '*'> 
                                      ($ Id.VSub_DollarName PACKAGE) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'lalib_p='>
                                                  name: lalib_p
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [4962]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [4950 4960 4967 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (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: {<->}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [4882 4915]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<test>} {(DQ ($ Id.VSub_DollarName lalib_p))} {<Id.Lit_Equals '='>} {<yes>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_ltwrapper_script_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<func_lalib_p>} {(DQ ($ Id.VSub_Number 1))})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_ltwrapper_executable_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                      name: func_ltwrapper_exec_suffix
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [5050]
                )
              ]
              redirects: []
            )
            (command.Case
              to_match: {($ Id.VSub_Number 1)}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                  action: []
                  spids: [5060 5062 5064 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                              name: func_ltwrapper_exec_suffix
                            )
                          op: assign_op.Equal
                          rhs: {<.exe>}
                          spids: [5070]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5067 5068 5073 -1]
                )
              ]
              redirects: []
            )
            (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>})
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_ltwrapper_scriptname
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_ltwrapper_scriptname_result='>
                      name: func_ltwrapper_scriptname_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [5119]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<func_ltwrapper_executable_p>} {(DQ ($ Id.VSub_Number 1))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (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
                              left: <Id.Lit_VarLike 'func_ltwrapper_scriptname_result='>
                              name: func_ltwrapper_scriptname_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName func_dirname_result) <'/'> 
                                ($ Id.VSub_DollarName objdir) <'/'> (${ Id.VSub_Name func_stripname_result) <_ltshwrapper>
                              )
                            }
                          spids: [5164]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5124 5133]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_ltwrapper_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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))})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_execute_cmds
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_ifs='> name:save_ifs)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName IFS)}
                      spids: [5243]
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <'~'>)}
                  spids: [5247]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [cmd]
              iterable: (for_iter.Words words:[{($ Id.VSub_Number 1)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName save_ifs)}
                          spids: [5265]
                        )
                      ]
                      redirects: []
                    )
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'cmd='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) ($ Id.VSub_DollarName cmd) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                      }
                    )
                    (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName cmd))} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 2>
                            var_name: 2
                            suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      }
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName save_ifs)}
                  spids: [5295]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_source
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (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 '\\\\'>
                        ch: '\\'
                      ) <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(C {<.>} {(DQ ($ Id.VSub_Number 1))})]
                  spids: [5338 5347 5355 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<.>} {(DQ <'./'> ($ Id.VSub_Number 1))})]
                  spids: [5358 5359 5368 -1]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_infer_tag
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (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 left:<Id.Lit_VarLike 'CC_quoted='> name:CC_quoted)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [5430]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [arg]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName CC)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CC_quoted='>
                                      name: CC_quoted
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName CC_quoted) <' '> 
                                        ($ Id.VSub_DollarName func_quote_for_eval_result)
                                      )
                                    }
                                  spids: [5452]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (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 <' '> 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName CC)})
                                  right: <Id.Backtick_Right '`'>
                                ) <' '>
                              ) <Id.Lit_Star '*'>
                            }
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName CC)})
                                  right: <Id.Backtick_Right '`'>
                                ) <' '>
                              ) <Id.Lit_Star '*'>
                            }
                            {(DQ <' '> ($ Id.VSub_DollarName CC_quoted)) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName CC_quoted) <' '>) <Id.Lit_Star '*'>}
                            {
                              (DQ <' '> 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName CC_quoted)})
                                  right: <Id.Backtick_Right '`'>
                                ) <' '>
                              ) <Id.Lit_Star '*'>
                            }
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName CC_quoted)})
                                  right: <Id.Backtick_Right '`'>
                                ) <' '>
                              ) <Id.Lit_Star '*'>
                            }
                          ]
                          action: []
                          spids: [5478 5566 5568 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ForEach
                              iter_names: [z]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName available_tags)}]
                                )
                              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'>}
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eval>} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Simple
                                                        words: [
                                                          {(${ Id.VSub_Name 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)}
                                                          )
                                                        ]
                                                        more_env: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'CC_quoted='>
                                                      name: CC_quoted
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [5656]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [arg]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName CC)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_quote_for_eval>} 
                                                      {(DQ ($ Id.VSub_DollarName arg))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'CC_quoted='>
                                                              name: CC_quoted
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName CC_quoted) 
                                                                <' '> ($ Id.VSub_DollarName func_quote_for_eval_result)
                                                              )
                                                            }
                                                          spids: [5682]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (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 <' '> 
                                                        (command_sub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {($ Id.VSub_DollarName CC)}
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ 
                                                        (command_sub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {($ Id.VSub_DollarName CC)}
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ <' '> ($ Id.VSub_DollarName CC_quoted)) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName CC_quoted) <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ <' '> 
                                                        (command_sub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {($ Id.VSub_DollarName CC_quoted)}
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ 
                                                        (command_sub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {($ Id.VSub_DollarName CC_quoted)}
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tagname='>
                                                              name: tagname
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName z)}
                                                          spids: [5806]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [5703 5791 5813 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [5595 5616]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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 '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) <'--tag\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [5837 5848]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [5579 5580 5876 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5406 5427]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_write_libtool_object
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_libobj='> name:write_libobj)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Number 1)}
                  spids: [5906]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_lobj='> name:write_lobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                              (${ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')
                            }
                          spids: [5928]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5912 5925]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_lobj='> name:write_lobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [5939]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'write_oldobj='>
                              name: write_oldobj
                            )
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                              (${ Id.VSub_Number 3) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')
                            }
                          spids: [5963]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5947 5960]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_oldobj='> name:write_oldobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [5974]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName opt_dry_run)})
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  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: 6026
                              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 TIMESTAMP)
                                <') '>
                                ($ 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'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (C {($ Id.VSub_DollarName MV)} {(DQ (${ Id.VSub_Name write_libobj) <T>)} 
                      {(DQ (${ Id.VSub_Name write_libobj))}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_mode_compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base_compile='> name:base_compile)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [6067]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcfile='> name:srcfile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt))}
                  spids: [6070]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suppress_opt='> name:suppress_opt)
                  op: assign_op.Equal
                  rhs: {<yes>}
                  spids: [6079]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'suppress_output='>
                      name: suppress_output
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [6083]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg_mode='> name:arg_mode)
                  op: assign_op.Equal
                  rhs: {<normal>}
                  spids: [6086]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [6090]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'later='> name:later)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [6093]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pie_flag='> name:pie_flag)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [6096]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [arg]
              iterable: (for_iter.Args)
              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
                                      left: <Id.Lit_VarLike 'lastarg='>
                                      name: lastarg
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                  spids: [6124]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      name: arg_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [6130]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6115 6117 6134 -1]
                        )
                        (case_arm
                          pat_list: [{<target>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                  spids: [6143]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      name: arg_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [6149]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6138 6140 6156 -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 '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) <'-o\' more than once'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg_mode='>
                                              name: arg_mode
                                            )
                                          op: assign_op.Equal
                                          rhs: {<target>}
                                          spids: [6201]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6176 6177 6208 -1]
                                )
                                (case_arm
                                  pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pie_flag='>
                                              name: pie_flag
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName pie_flag) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [6224]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6212 6221 6235 -1]
                                )
                                (case_arm
                                  pat_list: [{<-shared>} {<-static>} {<-prefer-pic>} {<-prefer-non-pic>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'later='>
                                              name: later
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName later) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [6255]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6239 6252 6266 -1]
                                )
                                (case_arm
                                  pat_list: [{<-no-suppress>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'suppress_opt='>
                                              name: suppress_opt
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [6274]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6270 6271 6281 -1]
                                )
                                (case_arm
                                  pat_list: [{<-Xcompiler>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg_mode='>
                                              name: arg_mode
                                            )
                                          op: assign_op.Equal
                                          rhs: {<arg>}
                                          spids: [6289]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6285 6286 6302 -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
                                              left: <Id.Lit_VarLike 'args='>
                                              name: args
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [6329]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [6333]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'save_ifs='>
                                                  name: save_ifs
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                              spids: [6336]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <','>)}
                                          spids: [6342]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [arg]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName args)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                                  spids: [6360]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lastarg='>
                                                      name: lastarg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName lastarg) <' '> 
                                                        ($ Id.VSub_DollarName 
func_quote_for_eval_result
                                                        )
                                                      )
                                                    }
                                                  spids: [6373]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                          spids: [6384]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName lastarg))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [6404]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'base_compile='>
                                              name: base_compile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                                ($ Id.VSub_DollarName lastarg)
                                              )
                                            }
                                          spids: [6413]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6309 6312 6424 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName srcfile))}
                                          spids: [6444]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'srcfile='>
                                              name: srcfile
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [6450]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [6428 6429 6456 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6160 6162 6465 -1]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName lastarg))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'base_compile='>
                              name: base_compile
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                ($ Id.VSub_DollarName func_quote_for_eval_result)
                              )
                            }
                          spids: [6486]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (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: [6508 6509 6519 -1]
                )
                (case_arm
                  pat_list: [{<target>}]
                  action: [
                    (C {<func_fatal_error>} 
                      {
                        (DQ <'you must specify a target with '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'-o\''>
                        )
                      }
                    )
                  ]
                  spids: [6522 6523 6535 -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
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName srcfile))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                  spids: [6566]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                    )
                  ]
                  spids: [6538 6539 6575 -1]
                )
              ]
              redirects: []
            )
            (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 '*'> <.obj>}
                    {<Id.Lit_Star '*'> <.sx>}
                  ]
                  action: [
                    (C {<func_xform>} {(DQ ($ Id.VSub_DollarName libobj))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_xform_result)}
                          spids: [6702]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6597 6692 6706 -1]
                )
              ]
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'obj='> name:obj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                          spids: [6731]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6720 6722 6734 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_error>} 
                      {
                        (DQ <'cannot determine name of library object from '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName libobj) <'\''>
                        )
                      }
                    )
                  ]
                  spids: [6737 6738 6751 -1]
                )
              ]
              redirects: []
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName base_compile)})
            (command.ForEach
              iter_names: [arg]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName later)}])
              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>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                )
                                (C {<func_fatal_configuration>} 
                                  {(DQ <'can not build a shared library'>)}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [6809]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6783 6784 6816 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [6824]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [6828]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6820 6821 6835 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_mode='>
                                      name: pic_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [6843]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6839 6840 6850 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-non-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_mode='>
                                      name: pic_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [6858]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6854 6855 6865 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (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
                  stderr_indices: []
                )
                (C {<func_warning>} 
                  {
                    (DQ <'libobj name '> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\`'>
                        ch: '`'
                      ) ($ 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 left:<Id.Lit_VarLike 'objname='> name:objname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                  spids: [6950]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xdir='> name:xdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                  spids: [6956]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lobj='> name:lobj)
                  op: assign_op.Equal
                  rhs: 
                    {(${ Id.VSub_Name xdir) ($ Id.VSub_DollarName objdir) <'/'> 
                      ($ Id.VSub_DollarName objname)
                    }
                  spids: [6962]
                )
              ]
              redirects: []
            )
            (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>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> 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: [7012]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6996 7009]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> name:removelist)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName lobj) <' '> ($ Id.VSub_DollarName libobj) <' '> 
                            (${ Id.VSub_Name libobj) <T>
                          )
                        }
                      spids: [7030]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'pic_mode='> name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [7083]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7058 7080 7087 -1]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName pic_mode))} {<Id.Lit_Equals '='>} 
                                  {<no>}
                                )
                                (C {<test>} {(DQ ($ Id.VSub_DollarName deplibs_check_method))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<pass_all>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pic_mode='> name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [7126]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7093 7119]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName compiler_c_o))} {<Id.Lit_Equals '='>} 
                              {<no>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_obj='> 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 <X> ($ Id.VSub_DollarName srcfile))}
                                      )
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} {(SQ <'s%^.*/%%'>)} {<-e>} 
                                        {(SQ <'s%\\.[^.]*$%%'>)}
                                      )
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              ) <.> (${ Id.VSub_Name objext)
                            }
                          spids: [7158]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lockfile='> name:lockfile)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName output_obj) <.lock>)}
                          spids: [7193]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7142 7155]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_obj='> name:output_obj)
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [7203]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'need_locks='> name:need_locks)
                      op: assign_op.Equal
                      rhs: {<no>}
                      spids: [7206]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lockfile='> name:lockfile)
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [7210]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName need_locks))} {<Id.Lit_Equals '='>} 
                              {<yes>}
                            )
                          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'>}
                                        )
                                      ]
                                      more_env: []
                                      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>})
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [7225 7238]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName need_locks))} {<Id.Lit_Equals '='>} 
                              {<warn>}
                            )
                          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'>}
                                          )
                                        ]
                                        more_env: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  ) <'\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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                  <'-c\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-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: [7297 7308]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> name:removelist)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName removelist) <' '> 
                                ($ Id.VSub_DollarName output_obj)
                              )
                            }
                          spids: [7361]
                        )
                      ]
                      redirects: []
                    )
                    (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))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [7281 7294]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName opt_dry_run)})
                (C {($ Id.VSub_DollarName RM)} {($ Id.VSub_DollarName removelist)})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> name:removelist)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName removelist) <' '> ($ Id.VSub_DollarName lockfile))}
                  spids: [7395]
                )
              ]
              redirects: []
            )
            (C {<trap>} {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)} {<1>} {<2>} {<15>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName fix_srcfile_path))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'srcfile='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) ($ Id.VSub_DollarName fix_srcfile_path) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        )
                      }
                    )
                  ]
                  spids: [7417 7428]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName srcfile))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qsrcfile='> name:qsrcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                  spids: [7449]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'fbsd_hideous_sh_bug='>
                              name: fbsd_hideous_sh_bug
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName base_compile)}
                          spids: [7478]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pic_mode))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                        ($ Id.VSub_DollarName qsrcfile) <' '> ($ Id.VSub_DollarName pic_flag)
                                      )
                                    }
                                  spids: [7500]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7483 7497]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                    ($ Id.VSub_DollarName qsrcfile)
                                  )
                                }
                              spids: [7517]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (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: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <' -o '> 
                                        ($ Id.VSub_DollarName lobj)
                                      )
                                    }
                                  spids: [7556]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7538 7549]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName need_locks))} 
                                          {<Id.Lit_Equals '='>} {<warn>}
                                        )
                                        (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'>}
                                                      )
                                                    ]
                                                    more_env: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            )
                                          } {<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'>}
                                          )
                                        ]
                                        more_env: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  ) <'\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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-c\' and '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-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: [7582 7622]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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: [7684 7712]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName suppress_opt))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'suppress_output='>
                                      name: suppress_output
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <' >/dev/null 2>&1'>)}
                                  spids: [7752]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7736 7749]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [7458 7471]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                              {<Id.Lit_Equals '='>} {<yes>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pic_mode))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                        ($ Id.VSub_DollarName qsrcfile) ($ Id.VSub_DollarName pie_flag)
                                      )
                                    }
                                  spids: [7806]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7785 7799]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                    ($ Id.VSub_DollarName qsrcfile) <' '> ($ Id.VSub_DollarName pic_flag)
                                  )
                                }
                              spids: [7818]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName compiler_c_o))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <' -o '> 
                                        ($ Id.VSub_DollarName obj)
                                      )
                                    }
                                  spids: [7847]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7831 7844]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName command) 
                                ($ Id.VSub_DollarName suppress_output)
                              )
                            }
                          spids: [7863]
                        )
                      ]
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName need_locks))} 
                                          {<Id.Lit_Equals '='>} {<warn>}
                                        )
                                        (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'>}
                                                      )
                                                    ]
                                                    more_env: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            )
                                          } {<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'>}
                                          )
                                        ]
                                        more_env: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  ) <'\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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-c\' and '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-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: [7884 7924]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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: [7986 8014]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [7769 7782]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName opt_dry_run)})
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  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>} {(DQ ($ Id.VSub_DollarName need_locks))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'removelist='>
                                      name: removelist
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName lockfile)}
                                  spids: [8083]
                                )
                              ]
                              redirects: []
                            )
                            (C {($ Id.VSub_DollarName RM)} {(DQ ($ Id.VSub_DollarName lockfile))})
                          ]
                          spids: [8066 8080]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {($ Id.VSub_DollarName opt_help)})
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<compile>})
                (C {<func_mode_compile>} 
                  {
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 1>
                      var_name: 1
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_Plus _>
                          arg_word: {(DQ ($ Id.VSub_At '@'))}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
    )
    (command.ShFunction
      name: func_mode_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName mode)}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [(C {<func_help>})]
                  spids: [8158 8160 8174 -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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          <'/bin/rm\').  RM-OPTIONS are options (such as '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-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: [8178 8179 8205 -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 building PIC objects only\n'> 
                          <'  -prefer-non-pic   try to building non-PIC objects only\n'> <'  -shared           do not build a '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.o\' file suitable for static linking\n'> <'  -static           only build a '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.o\' file suitable for static linking\n'> <'\n'> 
                          <'COMPILE-COMMAND is a command to be used in creating a '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'.c\' with the\n'> 
                          <'library object suffix, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'.lo\'.'>
                        )
                      }
                    )
                  ]
                  spids: [8209 8210 8251 -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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-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: [8255 8256 8286 -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 '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'--dry-run\' option if you just want to see what would be executed.'>
                        )
                      }
                    )
                  ]
                  spids: [8290 8291 8313 -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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'install\' or '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'cp\' program.\n'> <'\n'> <'The following components of INSTALL-COMMAND are treated specially:\n'> 
                          <'\n'> <'  -inst-prefix 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: [8317 8318 8347 -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'> <'  -dlopen FILE      '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'-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'> 
                          <'  -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'
                          > <'\n'> <'All other options (arguments beginning with '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'-\') are ignored.\n'> <'\n'> <'Every other argument is treated as a filename.  Files ending in '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.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 '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.la\', then a libtool library is created,\n'> <'only library objects ('> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.lo\' files) may be specified, and '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'-rpath\' is\n'> <'required, except when creating a convenience library.\n'> <'\n'> 
                          <'If OUTPUT-FILE ends in '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'.a\' or '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'.lib\', then a standard library is created\n'> <'using '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'ar\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          <'ranlib\', or on Windows using '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'lib\'.\n'> <'\n'> 
                          <'If OUTPUT-FILE ends in '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'.lo\' or '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <.> (${ Id.VSub_Name objext) <'\', then a reloadable object file\n'> 
                          <'is created, otherwise an executable program is created.'>
                        )
                      }
                    )
                  ]
                  spids: [8351 8352 8450 -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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          <'/bin/rm\').  RM-OPTIONS are options (such as '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'-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: [8454 8455 8481 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_help>} 
                      {
                        (DQ <'invalid operation mode '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName mode) <'\''>
                        )
                      }
                    )
                  ]
                  spids: [8485 8486 8499 -1]
                )
              ]
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)})
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                  ($ Id.VSub_DollarName progname) <' --help\' for more information about other modes.'>
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [(C {($ Id.VSub_DollarName opt_help)}) (C {<func_mode_help>})]
    )
    (command.ShFunction
      name: func_mode_execute
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt))}
                  spids: [8558]
                )
              ]
              redirects: []
            )
            (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_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName execute_dlfiles)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName file))})
                        (C {<func_fatal_help>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              ($ Id.VSub_DollarName file) <'\' is not a file'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [8622]
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName file)}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName file))})
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName lib) <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [8665]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [8668]
                                )
                              ]
                              redirects: []
                            )
                            (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 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName file) <'\' was not linked with '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) <'-export-dynamic\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [8683 8694]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName file))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                  spids: [8745]
                                )
                              ]
                              redirects: []
                            )
                            (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: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                ($ Id.VSub_DollarName objdir)
                                              )
                                            }
                                          spids: [8770]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [8752 8767]
                                )
                              ]
                              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 '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName dlname) <'\' in '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName dir) <'\' or '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName objdir) <'\''>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [8781 8796]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8632 8634 8823 -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 left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                  spids: [8850]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8827 8829 8856 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-dlopen\' is ignored for non-libtool libraries and objects'>
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [8860 8861 8875 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'absdir='> 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>})]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [8886]
                        )
                      ]
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'dir='> name:dir)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName absdir))}
                              spids: [8912]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<eval>} 
                                      {
                                        (DQ <'test -z '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                          ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <dir> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                )
                              }
                            )
                          ]
                          spids: [8923 8936]
                        )
                      ]
                      else_action: [
                        (C {<eval>} 
                          {
                            (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'dir:'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                                ch: '$'
                              ) ($ Id.VSub_DollarName shlibpath_var) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              )
                            )
                          }
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_execute_magic='>
                      name: libtool_execute_magic
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName magic))}
                  spids: [8983]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [8994]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [file]
              iterable: (for_iter.Args)
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName file)}
                      arms: [
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: []
                          spids: [9012 9014 9016 -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
                                              left: <Id.Lit_VarLike 'file='>
                                              name: file
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName progdir) <'/'> 
                                                ($ Id.VSub_DollarName program)
                                              )
                                            }
                                          spids: [9050]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [9027 9036]
                                )
                                (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
                                              left: <Id.Lit_VarLike 'file='>
                                              name: file
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName progdir) <'/'> 
                                                ($ Id.VSub_DollarName program)
                                              )
                                            }
                                          spids: [9088]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [9058 9067]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [9019 9020 9099 -1]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName file))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName args) <' '> 
                                ($ Id.VSub_DollarName func_quote_for_eval_result)
                              )
                            }
                          spids: [9116]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName opt_dry_run))} 
                              {<Id.Lit_Equals '='>} {<Xfalse>}
                            )
                          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 <'export '> ($ Id.VSub_DollarName shlibpath_var))})]
                          spids: [9145 9156]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [lt_var]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {<LANG>}
                            {<LANGUAGE>}
                            {<LC_ALL>}
                            {<LC_CTYPE>}
                            {<LC_COLLATE>}
                            {<LC_MESSAGES>}
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<eval>} 
                              {
                                (DQ <'if test '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{save_'> 
                                  ($ Id.VSub_DollarName lt_var) <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = set; then\n'> 
                                  <'                '> ($ Id.VSub_DollarName lt_var) <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <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'>
                                )
                              }
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                <cmd> ($ Id.VSub_DollarName args)
                              )
                            }
                          spids: [9239]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9128 9142]
                )
              ]
              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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                              <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                                ch: '$'
                              ) <'shlibpath_var='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                              ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                            )
                          }
                        )
                        (C {($ Id.VSub_DollarName ECHO)} 
                          {(DQ <'export '> ($ Id.VSub_DollarName shlibpath_var))}
                        )
                      ]
                      spids: [9254 9265]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (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)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<execute>})
        (C {<func_mode_execute>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_finish
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdirs='> name:libdirs)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt))}
                  spids: [9349]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admincmds='> name:admincmds)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [9355]
                )
              ]
              redirects: []
            )
            (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_names: [dir]
                      iterable: (for_iter.Args)
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'libdirs='>
                                      name: libdirs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName libdirs) <' '> 
                                        ($ Id.VSub_DollarName dir)
                                      )
                                    }
                                  spids: [9392]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [libdir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libdirs)}])
                      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: [9416 9427]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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 '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName finish_eval) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName opt_dry_run)})
                                        (C {<eval>} {(DQ ($ Id.VSub_DollarName cmds))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'admincmds='>
                                                  name: admincmds
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName admincmds) <'\n'> 
                                                    <'       '> ($ Id.VSub_DollarName cmds)
                                                  )
                                                }
                                              spids: [9492]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9454 9465]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [9359 9381]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName opt_silent)})
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                )
              ]
            )
            (command.Pipeline
              children: [
                (C {($ Id.VSub_DollarName ECHO)} 
                  {(DQ <X---------------------------------------------------------------------->)}
                )
                (C {($ Id.VSub_DollarName Xsed)})
              ]
              negated: F
              stderr_indices: []
            )
            (C {($ Id.VSub_DollarName ECHO)} {(DQ <'Libraries have been installed in:'>)})
            (command.ForEach
              iter_names: [libdir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libdirs)}])
              body: 
                (command.DoGroup
                  children: [
                    (C {($ Id.VSub_DollarName ECHO)} {(DQ <'   '> ($ Id.VSub_DollarName libdir))})
                  ]
                )
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)})
            (C {($ Id.VSub_DollarName ECHO)} 
              {(DQ <'If you ever happen to want to link against installed libraries'>)}
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {(DQ <'in a given directory, LIBDIR, you must either use libtool, and'>)}
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'specify the full pathname of the library, or use the '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) <'-LLIBDIR\''>
                )
              }
            )
            (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'   - add LIBDIR to the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName shlibpath_var) <'\' environment variable'>
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName ECHO)} {(DQ <'     during execution'>)})
                  ]
                  spids: [9599 9610]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'   - add LIBDIR to the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName runpath_var) <'\' environment variable'>
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName ECHO)} {(DQ <'     during linking'>)})
                  ]
                  spids: [9633 9644]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'libdir='> name:libdir)
                          op: assign_op.Equal
                          rhs: {<LIBDIR>}
                          spids: [9681]
                        )
                      ]
                      redirects: []
                    )
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'flag='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'   - use the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) ($ Id.VSub_DollarName flag) <'\' linker flag'>
                        )
                      }
                    )
                  ]
                  spids: [9667 9678]
                )
              ]
              else_action: []
              redirects: []
            )
            (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: [9707 9718]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'   - have your system administrator add LIBDIR to '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'/etc/ld.so.conf\''>
                        )
                      }
                    )
                  ]
                  spids: [9732 9741]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)})
            (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)} 
                      {(DQ <'more information, such as the ld(1), crle(1) and ld.so(8) manual'>)}
                    )
                    (C {($ Id.VSub_DollarName ECHO)} {(DQ <pages.>)})
                  ]
                  spids: [9774 9783 9800 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {($ Id.VSub_DollarName ECHO)} 
                      {(DQ <'more information, such as the ld(1) and ld.so(8) manual pages.'>)}
                    )
                  ]
                  spids: [9803 9804 9814 -1]
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {($ Id.VSub_DollarName ECHO)} 
                  {(DQ <X---------------------------------------------------------------------->)}
                )
                (C {($ Id.VSub_DollarName Xsed)})
              ]
              negated: F
              stderr_indices: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<finish>})
        (C {<func_mode_finish>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe Id.Op_DPipe]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName nonopt))} {<Id.Lit_Equals '='>} 
                                  {(DQ ($ Id.VSub_DollarName SHELL))}
                                )
                                (C {<test>} {(DQ ($ Id.VSub_DollarName nonopt))} {<Id.Lit_Equals '='>} 
                                  {<'/bin/sh'>}
                                )
                                (command.Pipeline
                                  children: [
                                    (C {($ Id.VSub_DollarName ECHO)} 
                                      {(DQ <X> ($ Id.VSub_DollarName nonopt))}
                                    )
                                    (command.Simple
                                      words: [{($ Id.VSub_DollarName GREP)} {<shtool>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                  stderr_indices: []
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName nonopt))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'install_prog='>
                              name: install_prog
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result) <' '>)}
                          spids: [9948]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                          spids: [9955]
                        )
                      ]
                      redirects: []
                    )
                    (C {<shift>})
                  ]
                  spids: [9884 9934]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_prog='> name:install_prog)
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [9965]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName nonopt)}
                      spids: [9968]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_prog='> name:install_prog)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName install_prog) 
                        ($ Id.VSub_DollarName func_quote_for_eval_result)
                      )
                    }
                  spids: [9991]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10003]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10006]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10009]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10012]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_type='> name:install_type)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10015]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'isdir='> name:isdir)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [10018]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stripme='> name:stripme)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10022]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [arg]
              iterable: (for_iter.Args)
              body: 
                (command.DoGroup
                  children: [
                    (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: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName files) <' '> 
                                        ($ Id.VSub_DollarName dest)
                                      )
                                    }
                                  spids: [10047]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                  spids: [10055]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [10033 10044]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'isdir='> name:isdir)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [10076]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10073 10074 10079 -1]
                        )
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (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 '\\\\'>
                                        ch: '\\'
                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <'/'> <Id.Lit_RBracket ']'> <cp> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                        ch: ' '
                                      ) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [10097 10106 10108 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                          spids: [10114]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10111 10112 10117 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10082 10083 10123 -1]
                        )
                        (case_arm
                          pat_list: [{<-g>} {<-m>} {<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                  spids: [10138]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10126 10135 10142 -1]
                        )
                        (case_arm
                          pat_list: [{<-s>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'stripme='>
                                      name: stripme
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <' -s'>)}
                                  spids: [10149]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [10145 10146 10158 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: []
                          spids: [10161 10163 10166 -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.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [10191]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10177 10188]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName arg)}
                                      spids: [10197]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10169 10170 10207 -1]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'install_prog='>
                              name: install_prog
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                                ($ Id.VSub_DollarName func_quote_for_eval_result)
                              )
                            }
                          spids: [10225]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                      ($ Id.VSub_DollarName prev) <'\' option requires an argument'>
                    )
                  }
                )
              ]
            )
            (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: [10294 10305]
                        )
                      ]
                      else_action: [(C {<func_fatal_help>} {(DQ <'you must specify a destination'>)})]
                      redirects: []
                    )
                  ]
                  spids: [10280 10291]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} {(DQ ($ Id.VSub_DollarName dest))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                  spids: [10350]
                )
              ]
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'isdir='> name:isdir)
                      op: assign_op.Equal
                      rhs: {<yes>}
                      spids: [10369]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName isdir))} {<Id.Lit_Equals '='>} {<yes>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destdir='> name:destdir)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName dest))}
                          spids: [10389]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destname='> name:destname)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [10395]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10373 10386]
                )
              ]
              else_action: [
                (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName dest))} {(DQ )} {(DQ <.>)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destdir='> name:destdir)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                      spids: [10415]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destname='> name:destname)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                      spids: [10421]
                    )
                  ]
                  redirects: []
                )
                (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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          ($ Id.VSub_DollarName dest) <'\' is not a directory'>
                        )
                      }
                    )
                  ]
                )
              ]
              redirects: []
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName destdir)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                        ch: '\\'
                      ) <'/'> <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 '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  action: []
                  spids: [10475 10492 10494 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ForEach
                      iter_names: [file]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName file)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                                  action: []
                                  spids: [10520 10522 10524 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName destdir) <'\' must be an absolute directory name'>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10527 10528 10540 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [10497 10498 10549 -1]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_install_magic='>
                      name: libtool_install_magic
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName magic))}
                  spids: [10564]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'staticlibs='> name:staticlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10571]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'future_libdirs='> name:future_libdirs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10574]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'current_libdirs='>
                      name: current_libdirs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [10577]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
              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: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'staticlibs='>
                                      name: staticlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName staticlibs) <' '> 
                                        ($ Id.VSub_DollarName file)
                                      )
                                    }
                                  spids: [10614]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10604 10607 10622 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName file))})
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName file) <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [10655]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'old_library='>
                                      name: old_library
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [10658]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [10661]
                                )
                              ]
                              redirects: []
                            )
                            (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [10706 10713 10715 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'current_libdirs='>
                                                      name: current_libdirs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName current_libdirs) <' '> 
                                                        ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [10721]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [10718 10719 10728 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10676 10693]
                                )
                              ]
                              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 '*'>
                                        }
                                      ]
                                      action: []
                                      spids: [10751 10758 10760 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'future_libdirs='>
                                                  name: future_libdirs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName future_libdirs) <' '> 
                                                    ($ Id.VSub_DollarName libdir)
                                                  )
                                                }
                                              spids: [10766]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [10763 10764 10773 -1]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName file))} {(DQ <'/'>)} {(DQ )})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                  spids: [10797]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName dir) ($ Id.VSub_DollarName objdir))}
                                  spids: [10803]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                              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 <X> ($ Id.VSub_DollarName destdir))}
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {
                                                          (DQ <'s%'> ($ Id.VSub_DollarName libdir) 
                                                            <Id.Lit_Dollar '$'> <'%%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [10829]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ 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
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      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 <X> 
                                                                    ($ Id.VSub_DollarName 
relink_command
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    <
's%@inst_prefix_dir@%-inst-prefix-dir '
                                                                    > ($ Id.VSub_DollarName inst_prefix_dir) <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [10928]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [10910 10921]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  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 <X> 
                                                                ($ Id.VSub_DollarName relink_command)
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                            {(DQ <'s%@inst_prefix_dir@%%'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              spids: [10956]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_warning>} 
                                      {
                                        (DQ <'relinking '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName file) <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName relink_command))} 
                                      {(SQ <'func_fatal_error "error: relink \\`$file'>) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\''>
                                          ch: '\''
                                        ) (SQ <' with the above command before installing it"'>)
                                      }
                                    )
                                  ]
                                  spids: [10811 10822]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'realname='>
                                              name: realname
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_Number 1))}
                                          spids: [11042]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'srcname='>
                                              name: srcname
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName realname))}
                                          spids: [11052]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'srcname='>
                                                  name: srcname
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName realname)) <T>}
                                              spids: [11068]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName install_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
                                              left: <Id.Lit_VarLike 'tstripme='>
                                              name: tstripme
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName stripme))}
                                          spids: [11101]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                              left: <Id.Lit_VarLike 'tstripme='>
                                                              name: tstripme
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ )}
                                                          spids: [11146]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [11141 11143 11151 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [11114 11131 11157 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [11163 11184]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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_names: [linkname]
                                              iterable: (for_iter.Args)
                                              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) <'; }; })'>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [11206 11219]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib='>
                                              name: lib
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName destdir) <'/'> 
                                                ($ Id.VSub_DollarName realname)
                                              )
                                            }
                                          spids: [11299]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName postinstall_cmds))} {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [11028 11039]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName file))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                  spids: [11333]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'instname='>
                                      name: instname
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName name)) <i>
                                    }
                                  spids: [11339]
                                )
                              ]
                              redirects: []
                            )
                            (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))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'staticlibs='>
                                          name: staticlibs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName staticlibs) <' '> 
                                            ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName old_library)
                                          )
                                        }
                                      spids: [11380]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                          ]
                          spids: [10626 10628 11390 -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
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName destdir) <'/'> 
                                                ($ Id.VSub_DollarName destname)
                                              )
                                            }
                                          spids: [11422]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11408 11419]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName file))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                      spids: [11440]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName destdir) <'/'> 
                                            ($ Id.VSub_DollarName destfile)
                                          )
                                        }
                                      spids: [11446]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'staticdest='>
                                              name: staticdest
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                          spids: [11481]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11469 11471 11485 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'staticdest='>
                                              name: staticdest
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName destfile))}
                                          spids: [11494]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [11500]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11488 11491 11503 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'cannot copy a libtool object to '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName destfile) <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [11506 11507 11520 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName file))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'staticobj='>
                                              name: staticobj
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                          spids: [11590]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                            ch: '$'
                                          ) <'staticobj '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <staticdest>
                                        )
                                      } {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [11563 11576]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [11394 11396 11618 -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
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName destdir) <'/'> 
                                                ($ Id.VSub_DollarName destname)
                                              )
                                            }
                                          spids: [11644]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11630 11641]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName file))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                      spids: [11662]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName destdir) <'/'> 
                                            ($ Id.VSub_DollarName destfile)
                                          )
                                        }
                                      spids: [11668]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'stripped_ext='>
                                      name: stripped_ext
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [11692]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                                      left: <Id.Lit_VarLike 'file='>
                                                      name: file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                  spids: [11739]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'stripped_ext='>
                                                      name: stripped_ext
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <.exe>)}
                                                  spids: [11743]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [11709 11722]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [11704 11706 11752 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                                      left: <Id.Lit_VarLike 'wrapper='>
                                                      name: wrapper
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                      )
                                                    }
                                                  spids: [11801]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [11782 11791]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                          {(DQ ($ Id.VSub_DollarName file))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'wrapper='>
                                                  name: wrapper
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                              spids: [11822]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11770 11779 11829 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wrapper='>
                                              name: wrapper
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName file)}
                                          spids: [11836]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11832 11833 11840 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'notinst_deplibs='>
                                              name: notinst_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [11858]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [11861]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName wrapper) <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize='>
                                              name: finalize
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [11900]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [lib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName notinst_deplibs)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [11920]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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: [11923 11934]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libfile='>
                                                      name: libfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(DQ ($ Id.VSub_DollarName libdir) <'/'>) 
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                                {(DQ <X> ($ Id.VSub_DollarName lib))}
                                                              )
                                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                                {(SQ <'s%^.*/%%g'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [11947]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                            ch: '`'
                                                          ) ($ Id.VSub_DollarName lib) <'\' has not been installed in '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                            ch: '`'
                                                          ) ($ Id.VSub_DollarName libdir) <'\''>
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'finalize='>
                                                              name: finalize
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [12015]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [11977 12000]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [12026]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName wrapper))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'outputname='>
                                              name: outputname
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [12037]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName fast_install))} {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                        (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
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
finalize
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'tmpdir='>
                                                                      name: tmpdir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: (C {<func_mktempdir>})
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  spids: [12089]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {<func_basename>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName file) 
                                                                  ($ Id.VSub_DollarName stripped_ext)
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'file='>
                                                                      name: file
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_basename_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [12105]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'outputname='
                                                                        >
                                                                      name: outputname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName tmpdir) <'/'> ($ Id.VSub_DollarName file)
                                                                      )
                                                                    }
                                                                  spids: [12111]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'relink_command='
                                                                        >
                                                                      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 <X> ($ Id.VSub_DollarName relink_command))}
                                                                              )
                                                                              (C 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName Xsed
                                                                                  )
                                                                                } {<-e>} {(SQ <'s%@OUTPUT@%'>) (DQ ($ Id.VSub_DollarName outputname)) (SQ <'%g'>)}
                                                                              )
                                                                            ]
                                                                            negated: F
                                                                            stderr_indices: []
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  spids: [12123]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe]
                                                              children: [
                                                                (C {($ Id.VSub_DollarName opt_silent)})
                                                                (BraceGroup
                                                                  left: <Id.Lit_LBrace '{'>
                                                                  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
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                  right: <Id.Lit_RBrace '}'>
                                                                )
                                                              ]
                                                            )
                                                            (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: [12178 12187]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<func_error>} 
                                                                  {
                                                                    (DQ <'error: relink '> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\`'>
                                                                        ch: '`'
                                                                      ) ($ 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
                                                                    >
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'file='>
                                                                      name: file
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
outputname
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [12225]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [12073 12086]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_warning>} 
                                                          {
                                                            (DQ <'cannot relink '> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\`'>
                                                                ch: '`'
                                                              ) ($ Id.VSub_DollarName file) <'\''>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [12040 12063]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'file='>
                                                  name: file
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName ECHO)} 
                                                            {
                                                              (DQ <X> ($ Id.VSub_DollarName file) 
                                                                ($ Id.VSub_DollarName stripped_ext)
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                            {
                                                              (DQ <'s%'> <Id.Lit_BadBackslash '\\'> 
                                                                <'([^/]*'> <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_Dollar '$'> <'%'> ($ Id.VSub_DollarName objdir) <'/'> 
                                                                <Id.Lit_BadBackslash '\\'> <'1%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              spids: [12257]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [11846 11855]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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>
                                            }
                                          ]
                                          action: []
                                          spids: [12340 12345 12352 -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
                                                      left: <Id.Lit_VarLike 'destfile='>
                                                      name: destfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName destfile) <.exe>}
                                                  spids: [12362]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12355 12359 12367 -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
                                                      left: <Id.Lit_VarLike 'destfile='>
                                                      name: destfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                  spids: [12391]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12370 12374 12395 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [12321 12328 12401 -1]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName install_prog) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) <'stripme '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'file '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) <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: [12428 12439]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                            )
                          ]
                          spids: [11622 11623 12455 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ForEach
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName staticlibs)}])
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName file))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                          spids: [12484]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlib='> name:oldlib)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName destdir) <'/'> ($ Id.VSub_DollarName name))}
                          spids: [12495]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_show_eval>} 
                      {
                        (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'file '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <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 oldlib)
                                )
                              } {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [12521 12542]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName old_postinstall_cmds))} 
                      {(SQ <'exit $?'>)}
                    )
                  ]
                )
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName future_libdirs))})
                (C {<func_warning>} 
                  {
                    (DQ <'remember to run '> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\`'>
                        ch: '`'
                      ) ($ 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
                                  left: <Id.Lit_VarLike 'current_libdirs='>
                                  name: current_libdirs
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <' -n'> ($ Id.VSub_DollarName current_libdirs))}
                              spids: [12628]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
                          op: assign_op.Equal
                          rhs: {(SQ <'$SHELL $progpath $preserve_args --finish$current_libdirs'>)}
                          spids: [12635]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12606 12617]
                )
              ]
              else_action: [
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<install>})
        (C {<func_mode_install>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_generate_dlsyms
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_outputname='> name:my_outputname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [12698]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_originator='> name:my_originator)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 2))}
                  spids: [12704]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_pic_p='> name:my_pic_p)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 3>
                          var_name: 3
                          suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<no>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  spids: [12710]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_prefix='> 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 {<sed>} {(SQ <'s%[^a-zA-Z0-9]%_%g'>)})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [12720]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_dlsyms='> name:my_dlsyms)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [12740]
                )
              ]
              redirects: []
            )
            (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>} {(DQ ($ Id.VSub_DollarName dlself))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                )
                              ]
                            )
                          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
                                      left: <Id.Lit_VarLike 'my_dlsyms='>
                                      name: my_dlsyms
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name my_outputname) <S.c>)}
                                  spids: [12796]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12772 12793]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'not configured to extract global symbols from dlpreopened files'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12744 12769]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 )}]
                          action: []
                          spids: [12843 12845 12847 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.c>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nlist='> name:nlist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        (${ Id.VSub_Name my_outputname) <.nm>
                                      )
                                    }
                                  spids: [12859]
                                )
                              ]
                              redirects: []
                            )
                            (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 '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                        ($ Id.VSub_DollarName my_outputname) <'\' dlsym emulation. */\n'> <'/* Generated by '> ($ Id.VSub_DollarName PROGRAM) <' (GNU '> 
                                        ($ Id.VSub_DollarName PACKAGE) ($ Id.VSub_DollarName TIMESTAMP) <') '> ($ Id.VSub_DollarName VERSION) <' */\n'> <'\n'> 
                                        <'#ifdef __cplusplus\n'> <'extern '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <C> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' {\n'> <'#endif\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)
                                          )
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName dlself))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'generating symbol list for '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ 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))}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'progfiles='>
                                              name: progfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName ECHO)} 
                                                        {
                                                          (DQ <X> ($ Id.VSub_DollarName objs) 
                                                            ($ Id.VSub_DollarName old_deplibs)
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SP2NL)})
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {(DQ ($ Id.VSub_DollarName lo2o))}
                                                      )
                                                      (C {($ Id.VSub_DollarName NL2SP)})
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [12999]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [progfile]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName progfiles)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'extracting global C symbols from '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName progfile) <'\''>
                                                )
                                              }
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName opt_dry_run)})
                                                (C {<eval>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                      ($ Id.VSub_DollarName progfile) <' | '> ($ Id.VSub_DollarName global_symbol_pipe) <' >> \''> ($ Id.VSub_DollarName nlist) <'\''>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)})
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13075 13086]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)})
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13117 13128]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName outputname) <.exp>
                                                      )
                                                    }
                                                  spids: [13177]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName opt_dry_run)})
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (C {($ Id.VSub_DollarName RM)} 
                                                      {($ Id.VSub_DollarName export_symbols)}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ (${ Id.VSub_Name 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: [13228 13244 13264 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13163 13174]
                                        )
                                      ]
                                      else_action: [
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {($ Id.VSub_DollarName opt_dry_run)})
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (C {<eval>} 
                                                  {
                                                    (DQ (${ Id.VSub_Name SED) <' -e \'s/'> 
                                                      <Id.Lit_BadBackslash '\\'> <'([].[*^'> <Id.Lit_Dollar '$'> <']'> <Id.Lit_BadBackslash '\\'> <')/'> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\\\'>
                                                        ch: '\\'
                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <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 '*'> <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: [13331 13346 13366 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                          ]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [12950 12963]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [dlprefile]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dlprefiles)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'extracting global C symbols from '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName dlprefile) <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName dlprefile))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                          spids: [13411]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName opt_dry_run)})
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (C {<eval>} {(SQ <'$ECHO ": $name " >> "$nlist"'>)})
                                            (C {<eval>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                  ($ Id.VSub_DollarName dlprefile) <' 2>/dev/null | '> ($ Id.VSub_DollarName global_symbol_pipe) <' >> \''> ($ Id.VSub_DollarName nlist) 
                                                  <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName opt_dry_run)})
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  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))}
                                            )
                                          ]
                                          more_env: []
                                          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>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (C {($ Id.VSub_DollarName MV)} 
                                              {(DQ ($ Id.VSub_DollarName nlist)) <T>} {(DQ ($ Id.VSub_DollarName nlist))}
                                            )
                                          ]
                                          spids: [13483 13494]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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))}
                                                            )
                                                          ]
                                                          more_env: []
                                                          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>}
                                                                            )
                                                                          ]
                                                                          more_env: []
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [(C {<sort>} {<-k>} {<3>})]
                                                              spids: [13559 13577]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<sort>} {<Id.Lit_Other '+'> <2>})
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          words: [{<uniq>}]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {(DQ ($ Id.VSub_DollarName nlist)) 
                                                                  <S>
                                                                }
                                                            )
                                                          ]
                                                          more_env: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      negated: F
                                                      stderr_indices: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [(C {<Id.Lit_Colon ':'>})]
                                          spids: [13540 13611]
                                        )
                                      ]
                                      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>}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [13646 13658]
                                        )
                                      ]
                                      else_action: [
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName 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)
                                                  )
                                                }
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName ECHO)}
                                        {
                                          (DQ <'\n'> 
                                            <
'/* The mapping between symbol names and symbols.  */\n'
                                            > <'typedef struct {\n'> <'  const char *name;\n'> <'  void *address;\n'> <'} lt_dlsymlist;\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)
                                              )
                                            }
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (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.Simple
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ 
                                                    <
'/* DATA imports from DLLs on WIN32 con\'t be const, because\n'
                                                    > <'   runtime relocations are performed -- see ld\'s documentation\n'> <'   on pseudo-relocs.  */'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lt_dlsym_const='>
                                                      name: lt_dlsym_const
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [13758]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [13721 13737 13760 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'> <osf5> <Id.Lit_Star '*'>}]
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'/* This system does not cope well with relocations in const data */'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lt_dlsym_const='>
                                                      name: lt_dlsym_const
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [13785]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [13763 13766 13787 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lt_dlsym_const='>
                                                      name: lt_dlsym_const
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.KW_Const const>}
                                                  spids: [13794]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [13790 13791 13797 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName ECHO)}
                                        {
                                          (DQ <'extern '> ($ Id.VSub_DollarName lt_dlsym_const) 
                                            <' lt_dlsymlist\n'> <lt_> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[];\n'> ($ Id.VSub_DollarName lt_dlsym_const) 
                                            <' lt_dlsymlist\n'> <lt_> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[] =\n'> <'{'> <'  { '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName my_originator) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) <', (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)
                                              )
                                            }
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (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)
                                                      )
                                                    }
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [13849 13850 13874 -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)
                                                      )
                                                    }
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [13877 13878 13902 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName 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)
                                              )
                                            }
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                      name: pic_flag_for_symtable
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [13948]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName compile_command) <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> (DQ <' -static '>) <Id.Lit_Star '*'>}]
                                  action: []
                                  spids: [13961 13966 13968 -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
                                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                      name: pic_flag_for_symtable
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName pic_flag) 
                                                        <' -DFREEBSD_WORKAROUND'>
                                                      )
                                                    }
                                                  spids: [14022]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [14002 14019 14029 -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
                                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                      name: pic_flag_for_symtable
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <' '> ($ Id.VSub_DollarName pic_flag))}
                                                  spids: [14040]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [14032 14037 14046 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <X> 
                                                                  ($ Id.VSub_DollarName my_pic_p)
                                                                )
                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<Xno>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'pic_flag_for_symtable='
                                                                >
                                                              name: pic_flag_for_symtable
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName pic_flag)
                                                              )
                                                            }
                                                          spids: [14071]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [14053 14068]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [14049 14050 14081 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [13971 13972 14087 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symtab_cflags='>
                                      name: symtab_cflags
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [14093]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [arg]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName LTCFLAGS)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName arg)}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                          action: []
                                          spids: [14115 14124 14126 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'symtab_cflags='>
                                                      name: symtab_cflags
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName symtab_cflags) <' '> 
                                                        ($ Id.VSub_DollarName arg)
                                                      )
                                                    }
                                                  spids: [14132]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [14129 14130 14139 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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"'
                                  >
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symfileobj='>
                                      name: symfileobj
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        (${ Id.VSub_Name my_outputname) <S.> ($ Id.VSub_DollarName objext)
                                      )
                                    }
                                  spids: [14181]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                                      left: <Id.Lit_VarLike 'compile_command='>
                                                      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 <X> 
                                                                    ($ Id.VSub_DollarName 
compile_command
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    ) <'/'> ($ Id.VSub_DollarName my_outputname) <'.def '> ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [14236]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_command='>
                                                      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 <X> 
                                                                    ($ Id.VSub_DollarName 
finalize_command
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    ) <'/'> ($ Id.VSub_DollarName my_outputname) <'.def '> ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [14265]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [14219 14233]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'compile_command='>
                                                  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 <X> 
                                                                ($ Id.VSub_DollarName compile_command)
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName symfileobj) <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              spids: [14297]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'finalize_command='>
                                                  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 <X> 
                                                                ($ Id.VSub_DollarName 
finalize_command
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName symfileobj) <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              spids: [14322]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [14200 14216 14350 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_command='>
                                              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 <X> 
                                                            ($ Id.VSub_DollarName compile_command)
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName symfileobj) <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [14357]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_command='>
                                              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 <X> 
                                                            ($ Id.VSub_DollarName finalize_command)
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName symfileobj) <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [14382]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [14353 14354 14407 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12850 12852 14413 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ <'unknown suffix for '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) ($ Id.VSub_DollarName my_dlsyms) <'\''>
                                )
                              }
                            )
                          ]
                          spids: [14416 14417 14430 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12822 12833]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'compile_command='>
                          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 <X> ($ Id.VSub_DollarName compile_command))}
                                  )
                                  (C {($ Id.VSub_DollarName Xsed)} {<-e>} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                                stderr_indices: []
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [14456]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'finalize_command='>
                          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 <X> ($ Id.VSub_DollarName finalize_command))}
                                  )
                                  (C {($ Id.VSub_DollarName Xsed)} {<-e>} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                                stderr_indices: []
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [14479]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_win32_libid
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'win32_libid_type='>
                      name: win32_libid_type
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <unknown>)}
                  spids: [14536]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'win32_fileres='> 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'>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [14542]
                )
              ]
              redirects: []
            )
            (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 '\\ '>
                        ch: ' '
                      ) <archive> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.KW_Import import> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                        ch: ' '
                      ) <library> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'win32_libid_type='>
                              name: win32_libid_type
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 archive import'>)}
                          spids: [14579]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14564 14573 14585 -1]
                )
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <ar> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                        ch: ' '
                      ) <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'>}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName EGREP)}
                                            {(SQ <'file format pe-i386(.*architecture: i386)?'>)}
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'win32_nmres='>
                                      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>} {($ Id.VSub_Number 1)}
                                              )
                                              (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
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [14639]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'win32_libid_type='>
                                              name: win32_libid_type
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive import'>)}
                                          spids: [14696]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [14692 14694 14700 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'win32_libid_type='>
                                              name: win32_libid_type
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive static'>)}
                                          spids: [14706]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [14703 14704 14710 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [14599 14636]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [14588 14593 14719 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <DLL> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'win32_libid_type='>
                              name: win32_libid_type
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 DLL'>)}
                          spids: [14728]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14722 14725 14734 -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 '\\ '>
                                ch: ' '
                              ) <Windows> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <PE> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <Intel> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'win32_libid_type='>
                                      name: win32_libid_type
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'x86 DLL'>)}
                                  spids: [14765]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [14753 14762 14771 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14737 14740 14777 -1]
                )
              ]
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName win32_libid_type))})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_extract_an_archive
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'f_ex_an_ar_dir='>
                          name: f_ex_an_ar_dir
                        )
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                      spids: [14808]
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'f_ex_an_ar_oldlib='>
                      name: f_ex_an_ar_oldlib
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [14817]
                )
              ]
              redirects: []
            )
            (C {<func_show_eval>} 
              {
                (DQ <'(cd '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                  <'f_ex_an_ar_dir && '> ($ Id.VSub_DollarName AR) <' x '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <f_ex_an_ar_oldlib> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')'>
                )
              } {(SQ <'exit $?'>)}
            )
            (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>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                  stderr_indices: []
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [14843 14872]
                )
              ]
              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)
                    )
                  }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_extract_archives
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_gentop='> name:my_gentop)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number 1))}
                      spids: [14911]
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldlibs='> name:my_oldlibs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [14920]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldobjs='> name:my_oldobjs)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [14930]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib='> name:my_xlib)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [14935]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xabs='> name:my_xabs)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [14940]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xdir='> name:my_xdir)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [14945]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [my_xlib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName my_oldlibs)}])
              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 '\\\\'>
                                ch: '\\'
                              ) <'/'> <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 '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_xabs='>
                                      name: my_xabs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName my_xlib))}
                                  spids: [14993]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [14974 14991 14998 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_xabs='>
                                      name: my_xabs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: (C {<pwd>})
                                        right: <Id.Backtick_Right '`'>
                                      ) (DQ <'/'> ($ Id.VSub_DollarName my_xlib))
                                    }
                                  spids: [15004]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [15001 15002 15015 -1]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName my_xlib))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib='> name:my_xlib)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                          spids: [15028]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib_u='> name:my_xlib_u)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName my_xlib)}
                          spids: [15034]
                        )
                      ]
                      redirects: []
                    )
                    (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
                                              left: <Id.Lit_VarLike 'extracted_serial='>
                                              name: extracted_serial
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_arith_result)}
                                          spids: [15076]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'my_xlib_u='>
                                              name: my_xlib_u
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {<lt> ($ Id.VSub_DollarName extracted_serial) <-> 
                                              ($ Id.VSub_DollarName my_xlib)
                                            }
                                          spids: [15080]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [15057 15064 15086 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [15089 15090 15094 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'extracted_archives='>
                              name: extracted_archives
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName extracted_archives) <' '> 
                                ($ Id.VSub_DollarName my_xlib_u)
                              )
                            }
                          spids: [15103]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xdir='> name:my_xdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName my_gentop) <'/'> 
                                ($ Id.VSub_DollarName my_xlib_u)
                              )
                            }
                          spids: [15111]
                        )
                      ]
                      redirects: []
                    )
                    (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
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_orig_dir='>
                                              name: darwin_orig_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [15160]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                              left: <Id.Lit_VarLike 'darwin_archive='>
                                              name: darwin_archive
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName my_xabs)}
                                          spids: [15179]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_curdir='>
                                              name: darwin_curdir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [15183]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_base_archive='>
                                              name: darwin_base_archive
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<basename>} 
                                                    {(DQ ($ Id.VSub_DollarName darwin_archive))}
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [15191]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_arches='>
                                              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'>}
                                                              )
                                                            ]
                                                            more_env: []
                                                            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'>}
                                                              )
                                                            ]
                                                            more_env: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                      (C {<true>})
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [15203]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'darwin_arches='>
                                                      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
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [15247]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_arch='>
                                                      name: darwin_arch
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [15269]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_verbose>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName darwin_base_archive) 
                                                  <' has multiple architectures '> ($ Id.VSub_DollarName darwin_arches)
                                                )
                                              }
                                            )
                                            (command.ForEach
                                              iter_names: [darwin_arch]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName darwin_arches)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_mkdir_p>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                          (${ Id.VSub_Name darwin_base_archive) <-> (${ Id.VSub_Name darwin_arch)
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName LIPO)} {<-thin>} 
                                                      {($ Id.VSub_DollarName darwin_arch)} {<-output>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                          (${ Id.VSub_Name darwin_base_archive) <-> (${ Id.VSub_Name darwin_arch) <'/'> (${ Id.VSub_Name darwin_base_archive)
                                                        )
                                                      } {(DQ (${ Id.VSub_Name darwin_archive))}
                                                    )
                                                    (C {<cd>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                          (${ Id.VSub_Name darwin_base_archive) <-> (${ Id.VSub_Name darwin_arch)
                                                        )
                                                      }
                                                    )
                                                    (C {<func_extract_an_archive>} 
                                                      {
                                                        (DQ 
                                                          (command_sub
                                                            left_token: <Id.Left_Backtick '`'>
                                                            child: (C {<pwd>})
                                                            right: <Id.Backtick_Right '`'>
                                                          )
                                                        )
                                                      } {(DQ (${ Id.VSub_Name darwin_base_archive))}
                                                    )
                                                    (C {<cd>} 
                                                      {(DQ ($ Id.VSub_DollarName darwin_curdir))}
                                                    )
                                                    (C {($ Id.VSub_DollarName RM)} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                          (${ Id.VSub_Name darwin_base_archive) <-> (${ Id.VSub_Name darwin_arch) <'/'> (${ Id.VSub_Name darwin_base_archive)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_filelist='>
                                                      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 '\\*'> ch:'*') <.o>} 
                                                                {<-print>} {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') <.lo>} {<-print>}
                                                              )
                                                              (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                                {(DQ ($ Id.VSub_DollarName basename))}
                                                              )
                                                              (C {<sort>} {<-u>})
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [15412]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_file='>
                                                      name: darwin_file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [15463]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_files='>
                                                      name: darwin_files
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [15466]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [darwin_file]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName darwin_filelist)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'darwin_files='>
                                                              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 
                                                                        {
                                                                          ($ Id.VSub_DollarName NL2SP)
                                                                        }
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                    stderr_indices: []
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                          spids: [15481]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (C {($ Id.VSub_DollarName LIPO)} {<-create>} 
                                                      {<-output>} {(DQ ($ Id.VSub_DollarName darwin_file))} {($ Id.VSub_DollarName darwin_files)}
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (C {($ Id.VSub_DollarName RM)} {<-rf>} 
                                              {<unfat-> ($ Id.VSub_Dollar '$')}
                                            )
                                            (C {<cd>} {(DQ ($ Id.VSub_DollarName darwin_orig_dir))})
                                          ]
                                          spids: [15233 15244]
                                        )
                                      ]
                                      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))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                            )
                          ]
                          spids: [15135 15138 15567 -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: [15570 15571 15585 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldobjs='> 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 '\\*'>
                                            ch: '*'
                                          ) <.> ($ Id.VSub_DollarName objext)
                                        } {<-print>} {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') <.lo>} 
                                        {<-print>}
                                      )
                                      (C {($ Id.VSub_DollarName NL2SP)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [15591]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_extract_archives_result='>
                      name: func_extract_archives_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName my_oldobjs))}
                  spids: [15634]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_emit_wrapper_part1
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_emit_wrapper_part1_arg1='>
                      name: func_emit_wrapper_part1_arg1
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [15667]
                )
              ]
              redirects: []
            )
            (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
                              left: <Id.Lit_VarLike 'func_emit_wrapper_part1_arg1='>
                              name: func_emit_wrapper_part1_arg1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                          spids: [15686]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [15671 15683]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 TIMESTAMP) <') '> ($ 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'> <'Xsed=\''> 
                  (${ Id.VSub_Name SED) <' -e 1s/^X//\'\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 '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'{ZSH_VERSION+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <' && (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 '\\$'>
                    ch: '$'
                  ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}, which\n'> 
                  <'  # is contrary to our usage.  Disable this feature.\n'> <'  alias -g \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'}\'=\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\'\n'> 
                  <'  setopt NO_GLOB_SUBST\n'> <'else\n'> <'  case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                  <'(set -o) 2>/dev/null'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                  <' 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 '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName relink_command) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\n'> 
                  <'# This environment variable determines our operation mode.\n'> <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <libtool_install_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <'; 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 '\\$'> ch:'$') <'file and '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'ECHO are already set.\n'> <'  if test '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libtool_execute_magic> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> <'    ECHO='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) ($ Id.VSub_DollarName qecho) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                  <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                  <'    # Make sure echo works.\n'> <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = X--no-reexec; then\n'> 
                  <'      # Discard the --no-reexec flag, and continue.\n'> <'      shift\n'> <'    elif test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'{ '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'ECHO \''> <Id.Lit_BadBackslash '\\'> <'t\'; } 2>/dev/null'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = \'X'> 
                  <Id.Lit_BadBackslash '\\'> <'t\'; then\n'> <'      # Yippee, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                  <'ECHO works!\n'> <'      :\n'> <'    else\n'> <'      # Restart under the correct shell, and then maybe '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'ECHO will work.\n'> <'      exec '> ($ Id.VSub_DollarName SHELL) <' '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <0> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' --no-reexec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'}\n'> <'    fi\n'> <'  fi'>
                )
              }
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'\n'> <'  # Find the directory that this script lives in.\n'> <'  thisdir='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' | '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'Xsed -e \'s%/[^/]*'> 
                  <Id.Lit_Dollar '$'> <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'  test '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <x> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' && thisdir=.\n'> <'\n'> 
                  <'  # Follow symbolic links until we get to the real thisdir.\n'> <'  file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'ls -ld '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' | '> (${ Id.VSub_Name SED) <' -n \'s/.*-> //p\''> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) <'\n'> <'  while test -n '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; do\n'> <'    destdir='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' | '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'Xsed -e \'s%/[^/]*'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'\n'> 
                  <'    # If there was a directory component, then change thisdir.\n'> <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <x> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' != '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'; then\n'> <'      case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' in\n'> <'      ['> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]* | [A-Za-z]:['> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]*) thisdir='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <destdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' ;;\n'> <'      *) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'thisdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <destdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' ;;\n'> <'      esac\n'> <'    fi\n'> <'\n'> <'    file='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' | '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'Xsed -e \'s%^.*/%%\''> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'ls -ld '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'thisdir/'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> (${ Id.VSub_Name SED) 
                  <' -n \'s/.*-> //p\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'  done\n'>
                )
              }
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_emit_wrapper_part2
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_emit_wrapper_part2_arg1='>
                      name: func_emit_wrapper_part2_arg1
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [16066]
                )
              ]
              redirects: []
            )
            (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
                              left: <Id.Lit_VarLike 'func_emit_wrapper_part2_arg1='>
                              name: func_emit_wrapper_part2_arg1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                          spids: [16085]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16070 16082]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'\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_part2_arg1) <'\n'> 
                  <'  if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <WRAPPER_SCRIPT_BELONGS_IN_OBJDIR> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <yes> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'; then\n'> <'    # special case for \'.\'\n'> <'    if test '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'; then\n'> <'      thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <pwd> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) <'\n'> <'    fi\n'> <'    # remove .libs from thisdir\n'> <'    case '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' in\n'> <'    *['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) <'/]'> ($ Id.VSub_DollarName objdir) <' ) thisdir='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' | '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'Xsed -e \'s%['> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/][^'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]*'> <Id.Lit_Dollar '$'> 
                  <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <' ;;\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 '\\`'> ch:'`') <'cd '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' && pwd'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'  test -n '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <absdir> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' && thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <absdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName fast_install))} {<Id.Lit_Equals '='>} 
                              {<yes>}
                            )
                          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 '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'thisdir/'> ($ Id.VSub_DollarName objdir) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <'\n'> <'\n'> <'  if test ! -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <' ||\n'> <'     { file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          <'ls -1dt '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/../'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <' 2>/dev/null | '> (${ Id.VSub_Name SED) <' 1q'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'; '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'       test '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <'; }; then\n'> <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <-> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\n'> 
                          <'    if test ! -d '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> <'      '> 
                          ($ Id.VSub_DollarName MKDIR) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'    else\n'> 
                          <'      '> ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <'\n'> <'    fi'>
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'\n'> <'    # relink executable if necessary\n'> <'    if test -n '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <relink_command> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <'; then\n'> <'      if relink_command_output='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'eval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'relink_command 2>&1'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'; then :\n'> <'      else\n'> <'\t'> ($ Id.VSub_DollarName ECHO) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <relink_command_output> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <' >&2\n'> <'\t'> ($ Id.VSub_DollarName RM) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\texit 1\n'> 
                          <'      fi\n'> <'    fi\n'> <'\n'> <'    '> ($ Id.VSub_DollarName MV) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 2>/dev/null ||\n'> 
                          <'    { '> ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <';\n'> <'      '> ($ Id.VSub_DollarName MV) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; }\n'> <'    '> 
                          ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <'\n'> <'  fi'>
                        )
                      }
                    )
                  ]
                  spids: [16196 16209]
                )
              ]
              else_action: [
                (C {($ Id.VSub_DollarName ECHO)} 
                  {
                    (DQ <'  program=\''> ($ Id.VSub_DollarName outputname) <'\'\n'> <'  progdir='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                        ch: '"'
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'thisdir/'> 
                      ($ Id.VSub_DollarName objdir) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                    )
                  }
                )
              ]
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'\n'> <'  if test -f '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName shlibpath_overrides_runpath))} 
                                  {<Id.Lit_Equals '='>} {<yes>}
                                )
                                (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 '\\"'>
                            ch: '"'
                          ) ($ Id.VSub_DollarName temp_rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                          ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\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 '\\`'>
                            ch: '`'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                          ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'Xsed -e \'s/::*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'//\''> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <'\n'> <'\n'> <'    export '> ($ Id.VSub_DollarName shlibpath_var) <'\n'>
                        )
                      }
                    )
                  ]
                  spids: [16463 16496]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 '\\$'>
                            ch: '$'
                          ) <'PATH\n'>
                        )
                      }
                    )
                  ]
                  spids: [16553 16564]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'    if test '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libtool_execute_magic> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> 
                  <'      # Run the actual program with our arguments.\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 <'      exec '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                            ch: '\\'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [16613 16631 16658 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {($ Id.VSub_DollarName ECHO)} 
                      {
                        (DQ <'      exec '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [16662 16663 16688 -1]
                )
              ]
              redirects: []
            )
            (C {($ Id.VSub_DollarName ECHO)} 
              {
                (DQ <'      '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                  <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'0: cannot exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'program '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 1>&2\n'> <'      exit 1\n'> 
                  <'    fi\n'> <'  else\n'> <'    # The program doesn\'t exist.\n'> <'    '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'0: error: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\`'>
                    ch: '`'
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'program\' does not exist'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <' 1>&2\n'> <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'This script is just a wrapper for '> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <program.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 1>&2\n'> <'    '> 
                  ($ Id.VSub_DollarName ECHO) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'See the '> 
                  ($ Id.VSub_DollarName PACKAGE) <' documentation for more information.'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <' 1>&2\n'> <'    exit 1\n'> <'  fi\n'> <fi>
                )
              }
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_emit_wrapper
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_emit_wrapper_arg1='>
                      name: func_emit_wrapper_arg1
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [16809]
                )
              ]
              redirects: []
            )
            (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
                              left: <Id.Lit_VarLike 'func_emit_wrapper_arg1='>
                              name: func_emit_wrapper_arg1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                          spids: [16828]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16813 16825]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<func_emit_wrapper_part1>} {(DQ (${ Id.VSub_Name func_emit_wrapper_arg1))})
            (C {<func_emit_wrapper_part2>} {(DQ (${ Id.VSub_Name func_emit_wrapper_arg1))})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_to_host_path
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [16936]
                )
              ]
              redirects: []
            )
            (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.Case
                      to_match: {($ Id.VSub_DollarName host)}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'lt_sed_naive_backslashify='>
                                      name: lt_sed_naive_backslashify
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
                                  spids: [16971]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName build)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lt_sed_strip_trailing_spaces='>
                                              name: lt_sed_strip_trailing_spaces
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'s/[ ]*'> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                  ch: '$'
                                                ) <'//'>
                                              )
                                            }
                                          spids: [16998]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                                              name: func_to_host_path_tmp1
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DPipe]
                                                    children: [
                                                      (command.Subshell
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cmd>} {<'//c'>} {<echo>} 
                                                                {(DQ ($ Id.VSub_Number 1))}
                                                              )
                                                              (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
lt_sed_strip_trailing_spaces
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                      )
                                                      (C {<echo>} {(DQ )})
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17006]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                              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_DollarName 
func_to_host_path_tmp1
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
lt_sed_naive_backslashify
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17050]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [16984 16988 17076 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                                              name: func_to_host_path_tmp1
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<cygpath>} {<-w>} {(DQ ($ Id.VSub_Number 1))})
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17086]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                              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_DollarName 
func_to_host_path_tmp1
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
lt_sed_naive_backslashify
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17100]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17079 17083 17126 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                                              name: func_to_host_path_tmp1
                                            )
                                          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'>}
                                                      )
                                                    ]
                                                    more_env: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17162]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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_Name func_to_host_path_tmp1)
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'func_to_host_path_result='>
                                                      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_DollarName 
func_to_host_path_tmp1
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
lt_sed_naive_backslashify
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [17207]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [17179 17204]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                                  name: func_to_host_path_result
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ )}
                                              spids: [17240]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17129 17131 17248 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_error>} 
                                      {(DQ <'Could not determine host path 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
                                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                              name: func_to_host_path_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_Number 1))}
                                          spids: [17296]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17254 17266]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [16964 16968 17305 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16942 16954]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_to_host_pathlist
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                      name: func_to_host_pathlist_result
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                  spids: [17384]
                )
              ]
              redirects: []
            )
            (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.Case
                      to_match: {($ Id.VSub_DollarName host)}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'lt_sed_naive_backslashify='>
                                      name: lt_sed_naive_backslashify
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
                                  spids: [17419]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_to_host_pathlist_tmp2='>
                                      name: func_to_host_pathlist_tmp2
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 1))}
                                  spids: [17437]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_to_host_pathlist_tmp1='>
                                      name: func_to_host_pathlist_tmp1
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} 
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName func_to_host_pathlist_tmp2)
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'s|^:*||'>)} 
                                                {<-e>} {(SQ <'s|:*$||'>)}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [17451]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName build)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lt_sed_strip_trailing_spaces='>
                                              name: lt_sed_strip_trailing_spaces
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'s/[ ]*'> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                  ch: '$'
                                                ) <'//'>
                                              )
                                            }
                                          spids: [17504]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_tmp2='>
                                              name: func_to_host_pathlist_tmp2
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DPipe]
                                                    children: [
                                                      (command.Subshell
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cmd>} {<'//c'>} {<echo>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
func_to_host_pathlist_tmp1
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
lt_sed_strip_trailing_spaces
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                      )
                                                      (C {<echo>} {(DQ )})
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17512]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<echo>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_to_host_pathlist_tmp2
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
lt_sed_naive_backslashify
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17556]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17490 17494 17582 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_tmp2='>
                                              name: func_to_host_pathlist_tmp2
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<cygpath>} {<-w>} {<-p>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
func_to_host_pathlist_tmp1
                                                        )
                                                      )
                                                    }
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17592]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<echo>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_to_host_pathlist_tmp2
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
lt_sed_naive_backslashify
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17608]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17585 17589 17634 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [17646]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_oldIFS='>
                                              name: func_to_host_pathlist_oldIFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName IFS)}
                                          spids: [17651]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                          spids: [17655]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [func_to_host_pathlist_f]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName func_to_host_pathlist_tmp1)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
func_to_host_pathlist_oldIFS
                                                      )
                                                    }
                                                  spids: [17672]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
func_to_host_pathlist_f
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_to_host_path>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
func_to_host_pathlist_f
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
func_to_host_path_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_to_host_pathlist_result
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'func_to_host_pathlist_result='
                                                                                >
                                                                              name: 
func_to_host_pathlist_result
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName func_to_host_path_result
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [17728]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [17713 17725]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'func_to_host_pathlist_result='
                                                                            >
                                                                          name: 
func_to_host_pathlist_result
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
func_to_host_pathlist_result
                                                                            ) <';'> ($ Id.VSub_DollarName func_to_host_path_result)
                                                                          )
                                                                        }
                                                                      spids: [17737]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [17698 17710]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [17676 17688]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                  spids: [17754]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_to_host_pathlist_oldIFS)}
                                          spids: [17761]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17637 17639 17765 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-z>} 
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName func_to_host_pathlist_result)
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_error>} 
                                      {(DQ <'Could not determine the host path(s) 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
                                              left: <Id.Lit_VarLike 'lt_replace_pathsep_nix_to_dos='>
                                              name: lt_replace_pathsep_nix_to_dos
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'s|:|;|g'>)}
                                          spids: [17829]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<echo>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_to_host_pathlist_tmp1
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
lt_replace_pathsep_nix_to_dos
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [17835]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17771 17783]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_Number 1))}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <';'> 
                                                ($ Id.VSub_DollarName func_to_host_pathlist_result)
                                              )
                                            }
                                          spids: [17882]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17877 17880 17889 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_Number 1))}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_to_host_pathlist_result='>
                                              name: func_to_host_pathlist_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName func_to_host_pathlist_result) 
                                                <';'>
                                              )
                                            }
                                          spids: [17909]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17904 17907 17916 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [17412 17416 17922 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [17390 17402]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_emit_cwrapperexe_src
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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: 18001
                      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 TIMESTAMP)
                        <') '>
                        ($ 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'>
                        <'   Currently, it simply execs the wrapper *script* '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName SHELL)
                        <' '>
                        ($ Id.VSub_DollarName output)
                        <Id.Right_DoubleQuote '"'>
                        <',\n'>
                        <'   but could eventually absorb all of the scripts functionality and\n'>
                        <'   exec '>
                        ($ Id.VSub_DollarName objdir)
                        <'/'>
                        ($ Id.VSub_DollarName outputname)
                        <' directly.\n'>
                        <'*/\n'>
                      ]
                    )
                )
              ]
              more_env: []
              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: 18144
                      stdin_parts: [
                        <'#include <stdio.h>\n'>
                        <'#include <stdlib.h>\n'>
                        <'#ifdef _MSC_VER\n'>
                        <'# include <direct.h>\n'>
                        <'# include <process.h>\n'>
                        <'# include <io.h>\n'>
                        <'# define setmode _setmode\n'>
                        <'#else\n'>
                        <'# include <unistd.h>\n'>
                        <'# include <stdint.h>\n'>
                        <'# ifdef __CYGWIN__\n'>
                        <'#  include <io.h>\n'>
                        <'#  define HAVE_SETENV\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'>
                        <'# 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'>
                        <'#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'>
                        <'#ifdef _MSC_VER\n'>
                        <'# define S_IXUSR _S_IEXEC\n'>
                        <'# define stat _stat\n'>
                        <'# ifndef _INTPTR_T_DEFINED\n'>
                        <'#  define intptr_t int\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'\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'>
                        <'#ifdef __CYGWIN__\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'#endif\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 ((void *) stale); stale = 0; } \\\n'>
                        <'} while (0)\n'>
                        <'\n'>
                        <'#undef LTWRAPPER_DEBUGPRINTF\n'>
                        <'#if defined DEBUGWRAPPER\n'>
                        <'# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args\n'>
                        <'static void\n'>
                        <'ltwrapper_debugprintf (const char *fmt, ...)\n'>
                        <'{\n'>
                        <'    va_list args;\n'>
                        <'    va_start (args, fmt);\n'>
                        <'    (void) vfprintf (stderr, fmt, args);\n'>
                        <'    va_end (args);\n'>
                        <'}\n'>
                        <'#else\n'>
                        <'# define LTWRAPPER_DEBUGPRINTF(args)\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'const char *program_name = NULL;\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_fatal (const char *message, ...);\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_opt_process_env_set (const char *arg);\n'>
                        <'void lt_opt_process_env_prepend (const char *arg);\n'>
                        <'void lt_opt_process_env_append (const char *arg);\n'>
                        <'int lt_split_name_value (const char *arg, char** name, char** value);\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'>
                        <'\n'>
                        <'static const char *script_text_part1 =\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (C {<func_emit_wrapper_part1>} {<yes>})
                (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'s/\\([\\\\"]\\)/\\\\\\1/g'>)} {<-e>} 
                  {(SQ <'s/^/  "/'>)} {<-e>} {(SQ <'s/$/\\\\n"/'>)}
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<echo>} {(DQ <';'>)})
            (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: 18192
                      stdin_parts: [<'\n'> <'static const char *script_text_part2 =\n'>]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (C {<func_emit_wrapper_part2>} {<yes>})
                (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'s/\\([\\\\"]\\)/\\\\\\1/g'>)} {<-e>} 
                  {(SQ <'s/^/  "/'>)} {<-e>} {(SQ <'s/$/\\\\n"/'>)}
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<echo>} {(DQ <';'>)})
            (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: 18248
                      stdin_parts: [
                        <'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'>
                      ]
                    )
                )
              ]
              more_env: []
              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>} {(DQ ($ Id.VSub_DollarName shlibpath_overrides_runpath))} 
                                  {<Id.Lit_Equals '='>} {<yes>}
                                )
                                (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_pathlist>} {(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: 18305
                              stdin_parts: [
                                <'const char * LIB_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName func_to_host_pathlist_result)
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18251 18284]
                )
              ]
              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: 18318
                          stdin_parts: [<'const char * LIB_PATH_VALUE   = "";\n'>]
                        )
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              redirects: []
            )
            (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_pathlist>} {(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: 18362
                              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_pathlist_result)
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18324 18335]
                )
              ]
              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: 18376
                          stdin_parts: [
                            <'const char * EXE_PATH_VARNAME = "";\n'>
                            <'const char * EXE_PATH_VALUE   = "";\n'>
                          ]
                        )
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName fast_install))} {<Id.Lit_Equals '='>} 
                              {<yes>}
                            )
                          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: 18410
                              stdin_parts: [
                                <'const char * TARGET_PROGRAM_NAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <lt->
                                ($ Id.VSub_DollarName outputname)
                                <Id.Right_DoubleQuote '"'>
                                <'; /* hopefully, no .exe */\n'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18382 18395]
                )
              ]
              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: 18426
                          stdin_parts: [
                            <'const char * TARGET_PROGRAM_NAME = '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName outputname)
                            <Id.Right_DoubleQuote '"'>
                            <'; /* hopefully, no .exe */\n'>
                          ]
                        )
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              redirects: []
            )
            (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: 18484
                      stdin_parts: [
                        <'\n'>
                        <'#define LTWRAPPER_OPTION_PREFIX         "--lt-"\n'>
                        <'#define LTWRAPPER_OPTION_PREFIX_LENGTH  5\n'>
                        <'\n'>
                        <
'static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;\n'
                        >
                        <'static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;\n'>
                        <'\n'>
                        <
'static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";\n'
                        >
                        <'\n'>
                        <
'static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;\n'
                        >
                        <
'static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";\n'
                        >
                        <'  /* argument is putenv-style "foo=bar", value of foo is set to bar */\n'>
                        <'\n'>
                        <
'static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;\n'
                        >
                        <
'static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";\n'
                        >
                        <
'  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */\n'
                        >
                        <'\n'>
                        <
'static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;\n'
                        >
                        <
'static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";\n'
                        >
                        <
'  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */\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'>
                        <'  intptr_t rval = 127;\n'>
                        <'\n'>
                        <'  int i;\n'>
                        <'\n'>
                        <'  program_name = (char *) xstrdup (base_name (argv[0]));\n'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\\n", argv[0]));\n'>
                        <
'  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\\n", program_name));\n'
                        >
                        <'\n'>
                        <'  /* very simple arg parsing; don\'t want to rely on getopt */\n'>
                        <'  for (i = 1; i < argc; i++)\n'>
                        <'    {\n'>
                        <'      if (strcmp (argv[i], dumpscript_opt) == 0)\n'>
                        <'\t{\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Case
              to_match: {(DQ ($ 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: [18495 18505 18519 -1]
                )
              ]
              redirects: []
            )
            (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: 18571
                      stdin_parts: [
                        <'\t  printf ("%s", script_text_part1);\n'>
                        <'\t  printf ("%s", script_text_part2);\n'>
                        <'\t  return 0;\n'>
                        <'\t}\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  newargz = XMALLOC (char *, argc + 1);\n'>
                        <'  tmp_pathspec = find_executable (argv[0]);\n'>
                        <'  if (tmp_pathspec == NULL)\n'>
                        <'    lt_fatal ("Couldn\'t find %s", argv[0]);\n'>
                        <
'  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\\n",\n'
                        >
                        <'\t\t\t  tmp_pathspec));\n'>
                        <'\n'>
                        <'  actual_cwrapper_path = chase_symlinks (tmp_pathspec);\n'>
                        <
'  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\\n",\n'
                        >
                        <'\t\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'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\\n",\n'>
                        <'\t\t\t  target_name));\n'>
                      ]
                    )
                )
              ]
              more_env: []
              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: 18598
                      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'>
                      ]
                    )
                )
              ]
              more_env: []
              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: 18618
                      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'>
                      ]
                    )
                )
              ]
              more_env: []
              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: 18651
                              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'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18628 18630 18653 -1]
                )
              ]
              redirects: []
            )
            (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: 18749
                      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'>
                        <'  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);\n'>
                        <'  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);\n'>
                        <'\n'>
                        <'  newargc=0;\n'>
                        <'  for (i = 1; i < argc; i++)\n'>
                        <'    {\n'>
                        <'      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)\n'>
                        <'        {\n'>
                        <'          if (argv[i][env_set_opt_len] == \'=\')\n'>
                        <'            {\n'>
                        <'              const char *p = argv[i] + env_set_opt_len + 1;\n'>
                        <'              lt_opt_process_env_set (p);\n'>
                        <'            }\n'>
                        <
'          else if (argv[i][env_set_opt_len] == \'\\0\' && i + 1 < argc)\n'
                        >
                        <'            {\n'>
                        <'              lt_opt_process_env_set (argv[++i]); /* don\'t copy */\n'>
                        <'            }\n'>
                        <'          else\n'>
                        <'            lt_fatal ("%s missing required argument", env_set_opt);\n'>
                        <'          continue;\n'>
                        <'        }\n'>
                        <
'      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)\n'
                        >
                        <'        {\n'>
                        <'          if (argv[i][env_prepend_opt_len] == \'=\')\n'>
                        <'            {\n'>
                        <'              const char *p = argv[i] + env_prepend_opt_len + 1;\n'>
                        <'              lt_opt_process_env_prepend (p);\n'>
                        <'            }\n'>
                        <
'          else if (argv[i][env_prepend_opt_len] == \'\\0\' && i + 1 < argc)\n'
                        >
                        <'            {\n'>
                        <
'              lt_opt_process_env_prepend (argv[++i]); /* don\'t copy */\n'
                        >
                        <'            }\n'>
                        <'          else\n'>
                        <
'            lt_fatal ("%s missing required argument", env_prepend_opt);\n'
                        >
                        <'          continue;\n'>
                        <'        }\n'>
                        <'      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)\n'>
                        <'        {\n'>
                        <'          if (argv[i][env_append_opt_len] == \'=\')\n'>
                        <'            {\n'>
                        <'              const char *p = argv[i] + env_append_opt_len + 1;\n'>
                        <'              lt_opt_process_env_append (p);\n'>
                        <'            }\n'>
                        <
'          else if (argv[i][env_append_opt_len] == \'\\0\' && i + 1 < argc)\n'
                        >
                        <'            {\n'>
                        <'              lt_opt_process_env_append (argv[++i]); /* don\'t copy */\n'>
                        <'            }\n'>
                        <'          else\n'>
                        <'            lt_fatal ("%s missing required argument", env_append_opt);\n'>
                        <'          continue;\n'>
                        <'        }\n'>
                        <
'      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)\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 ("Unrecognized option in %s namespace: \'%s\'",\n'>
                        <'                    ltwrapper_option_prefix, argv[i]);\n'>
                        <'        }\n'>
                        <'      /* otherwise ... */\n'>
                        <'      newargz[++newargc] = xstrdup (argv[i]);\n'>
                        <'    }\n'>
                        <'  newargz[++newargc] = NULL;\n'>
                        <'\n'>
                        <
'  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));\n'
                        >
                        <'  for (i = 0; i < newargc; i++)\n'>
                        <'    {\n'>
                        <
'      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\\n", i, (newargz[i] ? newargz[i] : "<NULL>")));\n'
                        >
                        <'    }\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              more_env: []
              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: 18780
                              stdin_parts: [
                                <
'  /* execv doesn\'t actually work on mingw as expected on unix */\n'
                                >
                                <
'  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);\n'
                                >
                                <'  if (rval == -1)\n'>
                                <'    {\n'>
                                <'      /* failed to start process */\n'>
                                <
'      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \\"%s\\": errno = %d\\n", lt_argv_zero, errno));\n'
                                >
                                <'      return 127;\n'>
                                <'    }\n'>
                                <'  return rval;\n'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18759 18761 18782 -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: 18798
                              stdin_parts: [
                                <'  execv (lt_argv_zero, newargz);\n'>
                                <'  return rval; /* =127, but avoids unused variable warning */\n'>
                              ]
                            )
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [18785 18786 18800 -1]
                )
              ]
              redirects: []
            )
            (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: 19259
                      stdin_parts: [
                        <'}\n'>
                        <'\n'>
                        <'void *\n'>
                        <'xmalloc (size_t num)\n'>
                        <'{\n'>
                        <'  void *p = (void *) malloc (num);\n'>
                        <'  if (!p)\n'>
                        <'    lt_fatal ("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'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\\n",\n'>
                        <'\t\t\t  path ? (*path ? path : "EMPTY!") : "NULL!"));\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'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\\n",\n'>
                        <'\t\t\t  path ? (*path ? path : "EMPTY!") : "NULL!"));\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'>
                        <'  int tmp_len;\n'>
                        <'  char *concat_name;\n'>
                        <'\n'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\\n",\n'>
                        <'\t\t\t  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));\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 = 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 ("getcwd failed");\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 ("getcwd failed");\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'>
                        <
'      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\\n",\n'
                        >
                        <'\t\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  char *errstr = strerror (errno);\n'>
                        <'\t  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);\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 ("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 (strcmp (str, pat) == 0)\n'>
                        <'\t*str = \'\\0\';\n'>
                        <'    }\n'>
                        <'  return str;\n'>
                        <'}\n'>
                        <'\n'>
                        <'static void\n'>
                        <'lt_error_core (int exit_status, const char *mode,\n'>
                        <'\t       const char *message, va_list ap)\n'>
                        <'{\n'>
                        <'  fprintf (stderr, "%s: %s: ", program_name, 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 *message, ...)\n'>
                        <'{\n'>
                        <'  va_list ap;\n'>
                        <'  va_start (ap, message);\n'>
                        <'  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);\n'>
                        <'  va_end (ap);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_setenv (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting \'%s\' to \'%s\'\\n",\n'>
                        <'                          (name ? name : "<NULL>"),\n'>
                        <'                          (value ? value : "<NULL>")));\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'>
                        <'    int 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'>
                        <'      int orig_value_len = strlen (orig_value);\n'>
                        <'      int 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'>
                        <'int\n'>
                        <'lt_split_name_value (const char *arg, char** name, char** value)\n'>
                        <'{\n'>
                        <'  const char *p;\n'>
                        <'  int len;\n'>
                        <'  if (!arg || !*arg)\n'>
                        <'    return 1;\n'>
                        <'\n'>
                        <'  p = strchr (arg, (int)\'=\');\n'>
                        <'\n'>
                        <'  if (!p)\n'>
                        <'    return 1;\n'>
                        <'\n'>
                        <'  *value = xstrdup (++p);\n'>
                        <'\n'>
                        <'  len = strlen (arg) - strlen (*value);\n'>
                        <'  *name = XMALLOC (char, len);\n'>
                        <'  strncpy (*name, arg, len-1);\n'>
                        <'  (*name)[len - 1] = \'\\0\';\n'>
                        <'\n'>
                        <'  return 0;\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_opt_process_env_set (const char *arg)\n'>
                        <'{\n'>
                        <'  char *name = NULL;\n'>
                        <'  char *value = NULL;\n'>
                        <'\n'>
                        <'  if (lt_split_name_value (arg, &name, &value) != 0)\n'>
                        <'    {\n'>
                        <'      XFREE (name);\n'>
                        <'      XFREE (value);\n'>
                        <'      lt_fatal ("bad argument for %s: \'%s\'", env_set_opt, arg);\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  lt_setenv (name, value);\n'>
                        <'  XFREE (name);\n'>
                        <'  XFREE (value);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_opt_process_env_prepend (const char *arg)\n'>
                        <'{\n'>
                        <'  char *name = NULL;\n'>
                        <'  char *value = NULL;\n'>
                        <'  char *new_value = NULL;\n'>
                        <'\n'>
                        <'  if (lt_split_name_value (arg, &name, &value) != 0)\n'>
                        <'    {\n'>
                        <'      XFREE (name);\n'>
                        <'      XFREE (value);\n'>
                        <'      lt_fatal ("bad argument for %s: \'%s\'", env_prepend_opt, arg);\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  new_value = lt_extend_str (getenv (name), value, 0);\n'>
                        <'  lt_setenv (name, new_value);\n'>
                        <'  XFREE (new_value);\n'>
                        <'  XFREE (name);\n'>
                        <'  XFREE (value);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_opt_process_env_append (const char *arg)\n'>
                        <'{\n'>
                        <'  char *name = NULL;\n'>
                        <'  char *value = NULL;\n'>
                        <'  char *new_value = NULL;\n'>
                        <'\n'>
                        <'  if (lt_split_name_value (arg, &name, &value) != 0)\n'>
                        <'    {\n'>
                        <'      XFREE (name);\n'>
                        <'      XFREE (value);\n'>
                        <'      lt_fatal ("bad argument for %s: \'%s\'", env_append_opt, arg);\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  new_value = lt_extend_str (getenv (name), value, 1);\n'>
                        <'  lt_setenv (name, new_value);\n'>
                        <'  XFREE (new_value);\n'>
                        <'  XFREE (name);\n'>
                        <'  XFREE (value);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_update_exe_path (const char *name, const char *value)\n'>
                        <'{\n'>
                        <
'  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying \'%s\' by prepending \'%s\'\\n",\n'
                        >
                        <'                          (name ? name : "<NULL>"),\n'>
                        <'                          (value ? value : "<NULL>")));\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'>
                        <'      int len = strlen (new_value);\n'>
                        <
'      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))\n'
                        >
                        <'        {\n'>
                        <'          new_value[len-1] = \'\\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'>
                        <
'  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying \'%s\' by prepending \'%s\'\\n",\n'
                        >
                        <'                          (name ? name : "<NULL>"),\n'>
                        <'                          (value ? value : "<NULL>")));\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'>
                        <'\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: func_mode_link
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (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
                              left: <Id.Lit_VarLike 'allow_undefined='>
                              name: allow_undefined
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [19366]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [19287 19322 19370 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'allow_undefined='>
                              name: allow_undefined
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [19377]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [19373 19374 19381 -1]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libtool_args='> name:libtool_args)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                  spids: [19387]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base_compile='> name:base_compile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt) <' '> ($ Id.VSub_At '@'))}
                  spids: [19391]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'compile_command='>
                      name: compile_command
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                  spids: [19399]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'finalize_command='>
                      name: finalize_command
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                  spids: [19403]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compile_rpath='> name:compile_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19408]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'finalize_rpath='> name:finalize_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19411]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'compile_shlibpath='>
                      name: compile_shlibpath
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19414]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'finalize_shlibpath='>
                      name: finalize_shlibpath
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19417]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'convenience='> name:convenience)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19420]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'old_convenience='>
                      name: old_convenience
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19423]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19426]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_deplibs='> name:old_deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19429]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compiler_flags='> name:compiler_flags)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19432]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linker_flags='> name:linker_flags)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19435]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dllsearchpath='> name:dllsearchpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19438]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'lib_search_path='>
                      name: lib_search_path
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: (C {<pwd>})
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [19441]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'inst_prefix_dir='>
                      name: inst_prefix_dir
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19449]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                      name: new_inherited_linker_flags
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19452]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'avoid_version='> name:avoid_version)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19456]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19460]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19463]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlself='> name:dlself)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19466]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'export_dynamic='> name:export_dynamic)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19470]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'export_symbols='> name:export_symbols)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19474]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'export_symbols_regex='>
                      name: export_symbols_regex
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19477]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'generated='> name:generated)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19480]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19483]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ltlibs='> name:ltlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19486]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'module='> name:module)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19489]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_install='> name:no_install)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19493]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19497]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'non_pic_objects='>
                      name: non_pic_objects
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19500]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'precious_files_regex='>
                      name: precious_files_regex
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19503]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'prefer_static_libs='>
                      name: prefer_static_libs
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19506]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preload='> name:preload)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19510]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19514]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prevarg='> name:prevarg)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19517]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19520]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19523]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xrpath='> name:xrpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19526]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'perm_rpath='> name:perm_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19529]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'temp_rpath='> name:temp_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19532]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'thread_safe='> name:thread_safe)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19535]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vinfo='> name:vinfo)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19539]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vinfo_number='> name:vinfo_number)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [19542]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'weak_libs='> name:weak_libs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [19546]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'single_module='> name:single_module)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name wl) <-single_module>)}
                  spids: [19549]
                )
              ]
              redirects: []
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName base_compile)})
            (command.ForEach
              iter_names: [arg]
              iterable: (for_iter.Args)
              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>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                )
                                (C {<func_fatal_configuration>} 
                                  {(DQ <'can not build a shared library'>)}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [19609]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [19583 19584 19616 -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>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
build_libtool_libs
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (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: [19642 19665]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                  spids: [19692]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [19678 19689]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [19699]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19638 19639 19703 -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
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                  spids: [19734]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [19710 19731]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<built>}
                                          spids: [19741]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19706 19707 19745 -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
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                  spids: [19776]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [19752 19773]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [19783]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19748 19749 19787 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [19793]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [19797]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [19619 19628 19804 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (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
                          left: <Id.Lit_VarLike 'build_old_libs='>
                          name: build_old_libs
                        )
                      op: assign_op.Equal
                      rhs: {<yes>}
                      spids: [19828]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (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 left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1))}
                          spids: [19853]
                        )
                      ]
                      redirects: []
                    )
                    (C {<shift>})
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qarg='> name:qarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_quote_for_eval_unquoted_result)}
                          spids: [19869]
                        )
                      ]
                      redirects: []
                    )
                    (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: [19909 19910 19931 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName prev)}
                              arms: [
                                (case_arm
                                  pat_list: [{<dlfiles>} {<dlprefiles>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName preload))} 
                                                      {<Id.Lit_Equals '='>} {<no>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_append>} {<compile_command>} {(DQ <' @SYMFILE@'>)})
                                            (C {<func_append>} {<finalize_command>} {(DQ <' @SYMFILE@'>)})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'preload='>
                                                      name: preload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [19989]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [19951 19964]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName arg)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.la>}
                                            {<Id.Lit_Star '*'> <.lo>}
                                          ]
                                          action: []
                                          spids: [20003 20010 20012 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<force>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName dlself))} {<Id.Lit_Equals '='>} {<no>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<needless>}
                                                          spids: [20038]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'export_dynamic='>
                                                              name: export_dynamic
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [20042]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [20022 20035]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [20049]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [20018 20019 20055 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<self>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName prev))} {<Id.Lit_Equals '='>} {<dlprefiles>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [20078]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [20062 20075]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} 
                                                                  {(DQ ($ Id.VSub_DollarName prev))} {<Id.Lit_Equals '='>} {<dlfiles>}
                                                                )
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
dlopen_self
                                                                      )
                                                                    )
                                                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [20111]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [20082 20108]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'dlself='>
                                                          name: dlself
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<needless>}
                                                      spids: [20118]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'export_dynamic='>
                                                          name: export_dynamic
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<yes>}
                                                      spids: [20122]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [20129]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [20058 20059 20135 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName prev))} {<Id.Lit_Equals '='>} {<dlfiles>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlfiles='>
                                                              name: dlfiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName dlfiles) <' '> 
                                                                ($ Id.VSub_DollarName arg)
                                                              )
                                                            }
                                                          spids: [20158]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [20142 20155]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'dlprefiles='>
                                                          name: dlprefiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName dlprefiles) <' '> 
                                                            ($ Id.VSub_DollarName arg)
                                                          )
                                                        }
                                                      spids: [20169]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [20180]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [20138 20139 20186 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19945 19948 20192 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [20199]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName arg))})
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'symbol file '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName arg) <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20227]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20195 20196 20233 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols_regex='>
                                              name: export_symbols_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [20240]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20246]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20236 20237 20252 -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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [20284 20291 20293 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplibs) <' '> 
                                                                ($ Id.VSub_DollarName qarg) <.ltframework>
                                                              )
                                                            }
                                                          spids: [20299]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [20296 20297 20311 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [20266 20271 20317 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20323]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20255 20256 20329 -1]
                                )
                                (case_arm
                                  pat_list: [{<inst_prefix>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                              name: inst_prefix_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [20336]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20342]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20332 20333 20348 -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
                                                      left: <Id.Lit_VarLike 'save_arg='>
                                                      name: save_arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName arg)}
                                                  spids: [20369]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'moreargs='>
                                                      name: moreargs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [20373]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [fil]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<cat>} 
                                                            {(DQ ($ Id.VSub_DollarName save_arg))}
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName fil)}
                                                          spids: [20399]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'pic_object='
                                                                        >
                                                                      name: pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word.Empty)
                                                                  spids: [20424]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'non_pic_object='
                                                                        >
                                                                      name: non_pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word.Empty)
                                                                  spids: [20427]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName pic_object
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {<none>}
                                                                                )
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName non_pic_object
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {<none>}
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (C {<func_fatal_error>} 
                                                                      {
                                                                        (DQ 
                                                                          <
'cannot find name of object for '
                                                                          > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_DollarName arg) <'\''>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [20443 20491]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                            (C {<func_dirname>} 
                                                              {(DQ ($ Id.VSub_DollarName arg))} {(DQ <'/'>)} {(DQ )}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'xdir='>
                                                                      name: xdir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_dirname_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [20526]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName pic_object
                                                                                  )
                                                                                )
                                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'pic_object='
                                                                                >
                                                                              name: pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName xdir
                                                                                ) ($ Id.VSub_DollarName pic_object)
                                                                              )
                                                                            }
                                                                          spids: [20554]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {
                                                                                        (DQ 
                                                                                          ($ 
Id.VSub_DollarName prev
                                                                                          )
                                                                                        )
                                                                                      } {<Id.Lit_Equals '='>} {<dlfiles>}
                                                                                    )
                                                                                  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
                                                                                                    >
                                                                                                  } {(DQ ($ Id.VSub_DollarName build_libtool_libs))} {<Id.Lit_Equals '='>} {<yes>}
                                                                                                )
                                                                                                (C 
                                                                                                  {
                                                                                                    <
test
                                                                                                    >
                                                                                                  } {(DQ ($ Id.VSub_DollarName dlopen_support))} {<Id.Lit_Equals '='>} {<yes>}
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'dlfiles='
                                                                                                >
                                                                                              name: 
dlfiles
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName dlfiles
                                                                                                ) <' '> ($ Id.VSub_DollarName pic_object)
                                                                                              )
                                                                                            }
                                                                                          spids: [
20606
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'prev='
                                                                                                >
                                                                                              name: 
prev
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (rhs_word.Empty)
                                                                                          spids: [
20614
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [20578 20603]
                                                                                )
                                                                              ]
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'prev='
                                                                                            >
                                                                                          name: prev
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          <
dlprefiles
                                                                                          >
                                                                                        }
                                                                                      spids: [20627]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [20562 20575]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      redirects: []
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {
                                                                                        (DQ 
                                                                                          ($ 
Id.VSub_DollarName prev
                                                                                          )
                                                                                        )
                                                                                      } {<Id.Lit_Equals '='>} {<dlprefiles>}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'dlprefiles='
                                                                                        >
                                                                                      name: 
dlprefiles
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName dlprefiles
                                                                                        ) <' '> ($ Id.VSub_DollarName pic_object)
                                                                                      )
                                                                                    }
                                                                                  spids: [20662]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'prev='
                                                                                        >
                                                                                      name: prev
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word.Empty)
                                                                                  spids: [20670]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [20642 20655]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      redirects: []
                                                                    )
                                                                    (C {<func_append>} {<libobjs>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
pic_object
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'arg='
                                                                                >
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName pic_object
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [20691]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [20533 20547]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName non_pic_object
                                                                                  )
                                                                                )
                                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'non_pic_object='
                                                                                >
                                                                              name: non_pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName xdir
                                                                                ) ($ Id.VSub_DollarName non_pic_object)
                                                                              )
                                                                            }
                                                                          spids: [20726]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (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>} 
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName pic_object
                                                                                              )
                                                                                            )
                                                                                          } {<Id.Lit_Equals '='>} {<none>}
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'arg='
                                                                                        >
                                                                                      name: arg
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName non_pic_object
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [20775]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [20748 20772]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [20705 20719]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'non_pic_object='
                                                                            >
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
pic_object
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [20795]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
non_pic_object
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [20412 20421]
                                                        )
                                                      ]
                                                      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
                                                                          left: 
                                                                            <Id.Lit_VarLike 'xdir='>
                                                                          name: xdir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
func_dirname_result
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [20847]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (C {<func_lo2o>} 
                                                                  {(DQ ($ Id.VSub_DollarName arg))}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'pic_object='
                                                                            >
                                                                          name: pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {($ Id.VSub_DollarName xdir) 
                                                                          ($ Id.VSub_DollarName 
objdir
                                                                          ) <'/'> ($ Id.VSub_DollarName func_lo2o_result)
                                                                        }
                                                                      spids: [20861]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'non_pic_object='
                                                                            >
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {($ Id.VSub_DollarName xdir) 
                                                                          ($ Id.VSub_DollarName 
func_lo2o_result
                                                                          )
                                                                        }
                                                                      spids: [20868]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (C {<func_append>} {<libobjs>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
pic_object
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
non_pic_object
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [20821 20826]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<func_fatal_error>} 
                                                              {
                                                                (DQ 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                                    ch: '`'
                                                                  ) ($ Id.VSub_DollarName arg) <'\' is not a valid libtool object'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [20355 20366]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'link input file '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName arg) <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg='>
                                              name: arg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_arg)}
                                          spids: [20930]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20934]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20351 20352 20940 -1]
                                )
                                (case_arm
                                  pat_list: [{<precious_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'precious_files_regex='>
                                              name: precious_files_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [20947]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20953]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20943 20944 20959 -1]
                                )
                                (case_arm
                                  pat_list: [{<release>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'release='>
                                              name: release
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <-> ($ Id.VSub_DollarName arg))}
                                          spids: [20966]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [20973]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20962 20963 20979 -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 '\\\\'>
                                                ch: '\\'
                                              ) <'/'> <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 '\\\\'> ch:'\\') <'/'> 
                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [21001 21018 21020 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {(DQ <'only absolute run-paths are allowed'>)}
                                            )
                                          ]
                                          spids: [21023 21024 21034 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName prev))} 
                                                      {<Id.Lit_Equals '='>} {<rpath>}
                                                    )
                                                  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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [21066 21073 21075 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rpath='>
                                                              name: rpath
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rpath) <' '> 
                                                                ($ Id.VSub_DollarName arg)
                                                              )
                                                            }
                                                          spids: [21081]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [21078 21079 21088 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [21040 21053]
                                        )
                                      ]
                                      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 '*'>
                                                }
                                              ]
                                              action: []
                                              spids: [21107 21114 21116 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<Id.Lit_Star '*'>}]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'xrpath='>
                                                          name: xrpath
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName xrpath) <' '> 
                                                            ($ Id.VSub_DollarName arg)
                                                          )
                                                        }
                                                      spids: [21122]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [21119 21120 21129 -1]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21138]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20982 20987 21144 -1]
                                )
                                (case_arm
                                  pat_list: [{<shrext>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'shrext_cmds='>
                                              name: shrext_cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                                          spids: [21151]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21157]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21147 21148 21163 -1]
                                )
                                (case_arm
                                  pat_list: [{<weak>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'weak_libs='>
                                              name: weak_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName weak_libs) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [21170]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21178]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21166 21167 21184 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcclinker>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linker_flags='>
                                              name: linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName linker_flags) <' '> 
                                                ($ Id.VSub_DollarName qarg)
                                              )
                                            }
                                          spids: [21191]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName qarg)
                                              )
                                            }
                                          spids: [21199]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21207]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [21187 21188 21233 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcompiler>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName qarg)
                                              )
                                            }
                                          spids: [21240]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21248]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [21236 21237 21274 -1]
                                )
                                (case_arm
                                  pat_list: [{<xlinker>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linker_flags='>
                                              name: linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName linker_flags) <' '> 
                                                ($ Id.VSub_DollarName qarg)
                                              )
                                            }
                                          spids: [21281]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName qarg)
                                              )
                                            }
                                          spids: [21289]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21298]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [21277 21278 21326 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName prev) <'='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <arg> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [21345]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21329 21330 21351 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [19888 19899]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prevarg='> name:prevarg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName arg))}
                          spids: [21364]
                        )
                      ]
                      redirects: []
                    )
                    (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: [21382 21393]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21378 21379 21426 -1]
                        )
                        (case_arm
                          pat_list: [{<-allow-undefined>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-allow-undefined\' must not be used because it is the default'>
                                )
                              }
                            )
                          ]
                          spids: [21430 21431 21446 -1]
                        )
                        (case_arm
                          pat_list: [{<-avoid-version>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'avoid_version='>
                                      name: avoid_version
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [21454]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21450 21451 21461 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlfiles>}
                                  spids: [21469]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21465 21466 21476 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlpreopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlprefiles>}
                                  spids: [21484]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21480 21481 21491 -1]
                        )
                        (case_arm
                          pat_list: [{<-export-dynamic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'export_dynamic='>
                                      name: export_dynamic
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [21499]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21495 21496 21506 -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: [21518 21539]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                              {<Id.Lit_Equals '='>} {(DQ <X-export-symbols>)}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: {<expsyms>}
                                          spids: [21571]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21552 21568]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                      op: assign_op.Equal
                                      rhs: {<expsyms_regex>}
                                      spids: [21578]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21510 21515 21588 -1]
                        )
                        (case_arm
                          pat_list: [{<-framework>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<framework>}
                                  spids: [21596]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21592 21593 21603 -1]
                        )
                        (case_arm
                          pat_list: [{<-inst-prefix-dir>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<inst_prefix>}
                                  spids: [21611]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21607 21608 21618 -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: [21652 21667 21690 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21630 21640 21699 -1]
                        )
                        (case_arm
                          pat_list: [{<-L> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} {(DQ ($ Id.VSub_DollarName arg))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [21722]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName dir))})
                                          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 '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) <'-L\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_Number 1) 
                                                  <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [21740 21753]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'need path for '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) <'-L\' option'>
                                            )
                                          }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21726 21737]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName dir)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                        ch: '\\'
                                      ) <'/'> <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 '\\\\'> ch:'\\') <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [21797 21814 21816 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'absdir='>
                                              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>})
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [21823]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                                ch: '`'
                                              ) ($ Id.VSub_DollarName dir) <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName absdir))}
                                          spids: [21861]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21819 21820 21867 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [21883 21890 21892 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplibs) <' -L'> 
                                                ($ Id.VSub_DollarName dir)
                                              )
                                            }
                                          spids: [21899]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib_search_path='>
                                              name: lib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName lib_search_path) <' '> 
                                                ($ Id.VSub_DollarName dir)
                                              )
                                            }
                                          spids: [21907]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21895 21896 21915 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'testbindir='>
                                              name: testbindir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName ECHO)} 
                                                        {(DQ <X> ($ Id.VSub_DollarName dir))}
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [21966]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [21998 22005 22007 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dir)}
                                                  spids: [22014]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [22010 22012 22016 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dllsearchpath) <':'> 
                                                        ($ Id.VSub_DollarName dir)
                                                      )
                                                    }
                                                  spids: [22022]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [22019 22020 22028 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [22043 22050 22052 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName testbindir)}
                                                  spids: [22059]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [22055 22057 22061 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dllsearchpath) <':'> 
                                                        ($ Id.VSub_DollarName testbindir)
                                                      )
                                                    }
                                                  spids: [22067]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [22064 22065 22073 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21928 21963 22079 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [21703 21705 22088 -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>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lc>)}
                                                )
                                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lm>)}
                                                )
                                              ]
                                            )
                                          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 '*'>}
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [22138 22173 22183 -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>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lc>)}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22186 22191 22216 -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 '*'>
                                            }
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lc>)}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22219 22240 22265 -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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplibs) 
                                                        <' System.ltframework'>
                                                      )
                                                    }
                                                  spids: [22290]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [22268 22283 22300 -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>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lc>)}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22303 22316 22341 -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>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <X-lc>)}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22344 22373 22398 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22097 22128]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName arg))} 
                                              {<Id.Lit_Equals '='>} {(DQ <X-lc_r>)}
                                            )
                                          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 '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [22430 22451 22461 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22404 22420]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName deplibs) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [22470]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22092 22094 22481 -1]
                        )
                        (case_arm
                          pat_list: [{<-module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'module='> name:module)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [22489]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22485 22486 22496 -1]
                        )
                        (case_arm
                          pat_list: [{<-model>} {<-arch>} {<-isysroot>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compiler_flags='>
                                      name: compiler_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [22520]
                                )
                              ]
                              redirects: []
                            )
                            (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 left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [22548]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22512 22517 22555 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<-mt>}
                            {<-mthreads>}
                            {<-kthread>}
                            {<-Kthread>}
                            {<-pthread>}
                            {<-pthreads>}
                            {<--thread-safe>}
                            {<-threads>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compiler_flags='>
                                      name: compiler_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [22577]
                                )
                              ]
                              redirects: []
                            )
                            (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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [22615 22622 22624 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                                              name: new_inherited_linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_inherited_linker_flags) 
                                                <' '> ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [22631]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22627 22629 22638 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22559 22574 22647 -1]
                        )
                        (case_arm
                          pat_list: [{<-multi_module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'single_module='>
                                      name: single_module
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name wl) <-multi_module>)}
                                  spids: [22655]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22651 22652 22667 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-fast-install>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'fast_install='>
                                      name: fast_install
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [22675]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22671 22672 22682 -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 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) <'-no-install\' is ignored for '> ($ Id.VSub_DollarName host)
                                        )
                                      }
                                    )
                                    (C {<func_warning>} 
                                      {
                                        (DQ <'assuming '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) <'-no-fast-install\' instead'>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'fast_install='>
                                              name: fast_install
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [22769]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22697 22740 22773 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'no_install='>
                                              name: no_install
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [22779]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22776 22777 22782 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22686 22687 22791 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-undefined>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'allow_undefined='>
                                      name: allow_undefined
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [22799]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22795 22796 22806 -1]
                        )
                        (case_arm
                          pat_list: [{<-objectlist>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<objectlist>}
                                  spids: [22814]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22810 22811 22821 -1]
                        )
                        (case_arm
                          pat_list: [{<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<output>}
                                  spids: [22828]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [22825 22826 22831 -1]
                        )
                        (case_arm
                          pat_list: [{<-precious-files-regex>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<precious_regex>}
                                  spids: [22839]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22835 22836 22846 -1]
                        )
                        (case_arm
                          pat_list: [{<-release>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<release>}
                                  spids: [22854]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22850 22851 22861 -1]
                        )
                        (case_arm
                          pat_list: [{<-rpath>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<rpath>}
                                  spids: [22869]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22865 22866 22876 -1]
                        )
                        (case_arm
                          pat_list: [{<-R>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xrpath>}
                                  spids: [22884]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22880 22881 22891 -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 left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [22914]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName dir)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                        ch: '\\'
                                      ) <'/'> <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 '\\\\'> ch:'\\') <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [22929 22946 22948 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {(DQ <'only absolute run-paths are allowed'>)}
                                    )
                                  ]
                                  spids: [22951 22952 22962 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [22978 22985 22987 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'xrpath='>
                                              name: xrpath
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName xrpath) <' '> 
                                                ($ Id.VSub_DollarName dir)
                                              )
                                            }
                                          spids: [22993]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [22990 22991 23000 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22895 22897 23009 -1]
                        )
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [23013 23014 23024 -1]
                        )
                        (case_arm
                          pat_list: [{<-shrext>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<shrext>}
                                  spids: [23032]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23028 23029 23039 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>} {<-static-libtool-libs>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [23043 23048 23074 -1]
                        )
                        (case_arm
                          pat_list: [{<-thread-safe>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'thread_safe='>
                                      name: thread_safe
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [23082]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23078 23079 23089 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-info>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [23097]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23093 23094 23104 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-number>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [23112]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'vinfo_number='>
                                      name: vinfo_number
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [23116]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23108 23109 23123 -1]
                        )
                        (case_arm
                          pat_list: [{<-weak>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<weak>}
                                  spids: [23131]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23127 23128 23138 -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 left:<Id.Lit_VarLike 'args='> name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [23162]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [23166]
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                      spids: [23169]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <','>)}
                                  spids: [23175]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [flag]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName args)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                          spids: [23193]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName flag))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg='>
                                              name: arg
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName arg) <' '> 
                                                ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName func_quote_for_eval_result)
                                              )
                                            }
                                          spids: [23206]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName func_quote_for_eval_result)
                                              )
                                            }
                                          spids: [23215]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                  spids: [23226]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} {(DQ ($ Id.VSub_DollarName arg))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [23246]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23142 23145 23250 -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 left:<Id.Lit_VarLike 'args='> name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [23274]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [23278]
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                      spids: [23281]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <','>)}
                                  spids: [23287]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [flag]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName args)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                          spids: [23305]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName flag))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg='>
                                              name: arg
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName arg) <' '> 
                                                ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName func_quote_for_eval_result)
                                              )
                                            }
                                          spids: [23318]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName func_quote_for_eval_result)
                                              )
                                            }
                                          spids: [23327]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linker_flags='>
                                              name: linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName linker_flags) <' '> 
                                                ($ Id.VSub_DollarName func_quote_for_eval_result)
                                              )
                                            }
                                          spids: [23336]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                  spids: [23347]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} {(DQ ($ Id.VSub_DollarName arg))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [23367]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23254 23257 23371 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xcompiler>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [23379]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23375 23376 23386 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xlinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xlinker>}
                                  spids: [23394]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23390 23391 23401 -1]
                        )
                        (case_arm
                          pat_list: [{<-XCClinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcclinker>}
                                  spids: [23409]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23405 23406 23416 -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 left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                  spids: [23436]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23424 23426 23442 -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 '*'>}
                          ]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                  spids: [23560]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                      left: <Id.Lit_VarLike 'compiler_flags='>
                                      name: compiler_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [23586]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23486 23550 23597 -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 left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                  spids: [23622]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23605 23612 23628 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName objs) <' '> ($ Id.VSub_DollarName arg))
                                    }
                                  spids: [23642]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23632 23635 23650 -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
                                              left: <Id.Lit_VarLike 'pic_object='>
                                              name: pic_object
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [23680]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'non_pic_object='>
                                              name: non_pic_object
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [23683]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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>} 
                                                          {(DQ ($ Id.VSub_DollarName pic_object))} {<Id.Lit_Equals '='>} {<none>}
                                                        )
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName non_pic_object))} {<Id.Lit_Equals '='>} {<none>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'cannot find name of object for '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName arg) <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [23699 23747]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName arg))} {(DQ <'/'>)} {(DQ )})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'xdir='>
                                              name: xdir
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                          spids: [23782]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pic_object))} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pic_object='>
                                                      name: pic_object
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName xdir) 
                                                        ($ Id.VSub_DollarName pic_object)
                                                      )
                                                    }
                                                  spids: [23810]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName prev))} {<Id.Lit_Equals '='>} {<dlfiles>}
                                                            )
                                                          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>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
build_libtool_libs
                                                                              )
                                                                            )
                                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                                        )
                                                                        (C {<test>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
dlopen_support
                                                                              )
                                                                            )
                                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'dlfiles='>
                                                                      name: dlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName dlfiles) <' '> ($ Id.VSub_DollarName pic_object)
                                                                      )
                                                                    }
                                                                  spids: [23862]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'prev='>
                                                                      name: prev
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word.Empty)
                                                                  spids: [23870]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [23834 23859]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'prev='>
                                                                  name: prev
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<dlprefiles>}
                                                              spids: [23883]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [23818 23831]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName prev))} {<Id.Lit_Equals '='>} {<dlprefiles>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlprefiles='>
                                                              name: dlprefiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName dlprefiles) 
                                                                <' '> ($ Id.VSub_DollarName pic_object)
                                                              )
                                                            }
                                                          spids: [23918]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'prev='>
                                                              name: prev
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word.Empty)
                                                          spids: [23926]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [23898 23911]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (C {<func_append>} {<libobjs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName pic_object))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      name: arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName pic_object))}
                                                  spids: [23947]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [23789 23803]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName non_pic_object))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'non_pic_object='>
                                                      name: non_pic_object
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName xdir) 
                                                        ($ Id.VSub_DollarName non_pic_object)
                                                      )
                                                    }
                                                  spids: [23982]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
pic_object
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<none>}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName non_pic_object)
                                                              )
                                                            }
                                                          spids: [24031]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [24004 24028]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [23961 23975]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'non_pic_object='>
                                                  name: non_pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName pic_object))}
                                              spids: [24051]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName non_pic_object))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [23668 23677]
                                )
                              ]
                              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
                                                  left: <Id.Lit_VarLike 'xdir='>
                                                  name: xdir
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                              spids: [24103]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName arg))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'pic_object='>
                                                  name: pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName xdir) 
                                                  ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName func_lo2o_result)
                                                }
                                              spids: [24117]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'non_pic_object='>
                                                  name: non_pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName xdir) 
                                                  ($ Id.VSub_DollarName func_lo2o_result)
                                                }
                                              spids: [24124]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_append>} {<libobjs>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName pic_object))}
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName non_pic_object))}
                                        )
                                      ]
                                      spids: [24077 24082]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName arg) <'\' is not a valid libtool object'>
                                        )
                                      }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23654 23656 24167 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName deplibs) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [24181]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'old_deplibs='>
                                      name: old_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName old_deplibs) <' '> 
                                        ($ Id.VSub_DollarName arg)
                                      )
                                    }
                                  spids: [24189]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24171 24174 24200 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName prev))} 
                                              {<Id.Lit_Equals '='>} {<dlfiles>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlfiles='>
                                              name: dlfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName dlfiles) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [24234]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [24242]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [24214 24227]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName prev))} 
                                              {<Id.Lit_Equals '='>} {<dlprefiles>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlprefiles='>
                                              name: dlprefiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName dlprefiles) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                          spids: [24265]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [24273]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [24245 24258]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          name: deplibs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName deplibs) <' '> 
                                            ($ Id.VSub_DollarName arg)
                                          )
                                        }
                                      spids: [24279]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24204 24206 24293 -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 left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                  spids: [24320]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [24301 24302 24326 -1]
                        )
                      ]
                      redirects: []
                    )
                    (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: [24340 24351]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName prev))})
                (C {<func_fatal_help>} 
                  {
                    (DQ <'the '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                      ($ 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>} {(DQ ($ Id.VSub_DollarName export_dynamic))} 
                                  {<Id.Lit_Equals '='>} {<yes>}
                                )
                                (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 '\\"'>
                          ch: '"'
                        ) ($ Id.VSub_DollarName export_dynamic_flag_spec) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        )
                      }
                    )
                    (C {<func_append>} {<compile_command>} {(DQ <' '> ($ Id.VSub_DollarName arg))})
                    (C {<func_append>} {<finalize_command>} {(DQ <' '> ($ Id.VSub_DollarName arg))})
                  ]
                  spids: [24407 24430]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24465]
                )
              ]
              redirects: []
            )
            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName output))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outputname='> name:outputname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                  spids: [24479]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs_save='> name:libobjs_save)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName libobjs))}
                  spids: [24485]
                )
              ]
              redirects: []
            )
            (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 '\\`'>
                          ch: '`'
                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>
                      } 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        ) <Id.Lit_LBrace '{'> ($ Id.VSub_DollarName shlibpath_var) <Id.Lit_RBrace '}'> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        )
                      } {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\|'> ch:'|')} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Xsed>} {<-e>} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') <'s/'> 
                        <Id.Lit_Colon ':'> <'/'>
                      } 
                      {<'/g'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                          ch: '`'
                        )
                      }
                    )
                  ]
                  spids: [24492 24503]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'shlib_search_path='>
                          name: shlib_search_path
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [24545]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<eval>} 
              {<Id.Lit_VarLike 'sys_lib_search_path='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName sys_lib_search_path_spec) 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
              }
            )
            (C {<eval>} 
              {<Id.Lit_VarLike 'sys_lib_dlsearch_path='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName sys_lib_dlsearch_path_spec) 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
              }
            )
            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName output))} {(DQ <'/'>)} {(DQ )})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_objdir='> name:output_objdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result) ($ Id.VSub_DollarName objdir))}
                  spids: [24582]
                )
              ]
              redirects: []
            )
            (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: [24612 24614 24624 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<oldlib>}
                          spids: [24632]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24627 24630 24635 -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 left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<obj>}
                          spids: [24648]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24638 24646 24651 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<lib>}
                          spids: [24658]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24654 24656 24661 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<prog>}
                          spids: [24667]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24664 24665 24670 -1]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'specialdeplibs='> name:specialdeplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24680]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24684]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [deplib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {($ Id.VSub_DollarName opt_duplicate_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: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'specialdeplibs='>
                                              name: specialdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName specialdeplibs) <' '> 
                                                ($ Id.VSub_DollarName deplib)
                                              )
                                            }
                                          spids: [24735]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [24726 24733 24742 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [24707 24713]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName libs) <' '> ($ Id.VSub_DollarName deplib))}
                          spids: [24751]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} 
                              {<lib>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> 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: [24779]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'pre_post_deps='>
                              name: pre_post_deps
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24804]
                        )
                      ]
                      redirects: []
                    )
                    (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_names: [pre_post_dep]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName predeps)}
                                    {($ Id.VSub_DollarName postdeps)}
                                  ]
                                )
                              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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'specialdeplibs='>
                                                      name: specialdeplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName specialdeplibs) <' '> 
                                                        ($ Id.VSub_DollarName pre_post_deps)
                                                      )
                                                    }
                                                  spids: [24848]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [24839 24846 24855 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pre_post_deps='>
                                              name: pre_post_deps
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName pre_post_deps) <' '> 
                                                ($ Id.VSub_DollarName pre_post_dep)
                                              )
                                            }
                                          spids: [24861]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [24807 24812]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'pre_post_deps='>
                              name: pre_post_deps
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24875]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24763 24776]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24882]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'newdependency_libs='>
                      name: newdependency_libs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24885]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'newlib_search_path='>
                      name: newlib_search_path
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24888]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'need_relink='> name:need_relink)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [24891]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'notinst_deplibs='>
                      name: notinst_deplibs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24898]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'notinst_path='> name:notinst_path)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [24904]
                )
              ]
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv dlpreopen link'>)}
                          spids: [24922]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [file]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName dlfiles)} {($ Id.VSub_DollarName dlprefiles)}]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName file)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  action: []
                                  spids: [24949 24951 24953 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'libraries can '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) <'-dlopen\' only libtool libraries: '> ($ Id.VSub_DollarName file)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [24956 24957 24970 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [24918 24919 24979 -1]
                )
                (case_arm
                  pat_list: [{<prog>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              name: compile_deplibs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24986]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                              name: finalize_deplibs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24989]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'alldeplibs='> name:alldeplibs)
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [24992]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'newdlfiles='> name:newdlfiles)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24996]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'newdlprefiles='>
                              name: newdlprefiles
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [24999]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv scan dlopen dlpreopen link'>)}
                          spids: [25002]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [24982 24983 25008 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <conv>)}
                          spids: [25014]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [25011 25012 25020 -1]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [pass]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName passes)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                          ($ Id.VSub_DollarName pass)
                                        )
                                      } {<Id.Lit_Equals '='>} {(DQ <'lib,link'>)}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      name: tmp_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [25075]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [deplib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                              name: tmp_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName tmp_deplibs)
                                              )
                                            }
                                          spids: [25090]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName tmp_deplibs))}
                                  spids: [25101]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [25047 25064]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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 linkmode) <','> 
                                              ($ Id.VSub_DollarName pass)
                                            )
                                          } {<Id.Lit_Equals '='>} {(DQ <'lib,link'>)}
                                        )
                                        (C {<test>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                              ($ Id.VSub_DollarName pass)
                                            )
                                          } {<Id.Lit_Equals '='>} {(DQ <'prog,scan'>)}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName deplibs))}
                                  spids: [25148]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [25154]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [25111 25145]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                      {<Id.Lit_Equals '='>} {<prog>}
                                    )
                                  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
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName dlfiles))}
                                          spids: [25186]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [25183 25184 25191 -1]
                                )
                                (case_arm
                                  pat_list: [{<dlpreopen>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName dlprefiles))}
                                          spids: [25197]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [25194 25195 25202 -1]
                                )
                                (case_arm
                                  pat_list: [{<link>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName deplibs) <' %DEPLIBS%'>)}
                                          spids: [25209]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'libs='>
                                                  name: libs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName libs) <' '> 
                                                    ($ Id.VSub_DollarName dependency_libs)
                                                  )
                                                }
                                              spids: [25230]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25205 25206 25238 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [25160 25173]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                          ($ Id.VSub_DollarName pass)
                                        )
                                      } {<Id.Lit_Equals '='>} {(DQ <'lib,dlpreopen'>)}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_names: [lib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dlprefiles)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              name: dependency_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [25287]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 lib))})]
                                          spids: [25297 25299 25307 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplib_base='>
                                                      name: deplib_base
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                                {
                                                                  (DQ <X> 
                                                                    ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                                {(DQ ($ Id.VSub_DollarName basename))}
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [25334]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [25368 25375 25377 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplibs) <' '> 
                                                                ($ Id.VSub_DollarName deplib)
                                                              )
                                                            }
                                                          spids: [25383]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [25380 25381 25390 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName dlprefiles))}
                                  spids: [25402]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [25247 25264]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} 
                                      {<dlopen>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_deplibs='>
                                      name: save_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName deplibs))}
                                  spids: [25431]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [25437]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [25411 25424]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libs)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [25456]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [25459]
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName deplib)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<-mt>}
                                    {<-mthreads>}
                                    {<-kthread>}
                                    {<-Kthread>}
                                    {<-pthread>}
                                    {<-pthreads>}
                                    {<--thread-safe>}
                                    {<-threads>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                          ($ Id.VSub_DollarName pass)
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                  spids: [25508]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                  spids: [25516]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [25488 25505]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'compiler_flags='>
                                                  name: compiler_flags
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                    ($ Id.VSub_DollarName deplib)
                                                  )
                                                }
                                              spids: [25527]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<lib>}
                                                        )
                                                      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 '*'>
                                                        }
                                                      ]
                                                      action: []
                                                      spids: [25562 25569 25571 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'new_inherited_linker_flags='
                                                                    >
                                                                  name: new_inherited_linker_flags
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                                    ) <' '> ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              spids: [25578]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [25574 25576 25585 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [25535 25549]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [25470 25485 25600 -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>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<lib>}
                                                        )
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<prog>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) <'-l\' is ignored for archives/objects'>
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [25608 25635]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (C {<func_stripname>} {(SQ <-l>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName deplib))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [25666]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                                      {<Id.Lit_Equals '='>} {<lib>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'searchdirs='>
                                                      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: [25686]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [25670 25683]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'searchdirs='>
                                                  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: [25703]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [searchdir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName searchdirs)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ForEach
                                              iter_names: [search_ext]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {<.la>}
                                                    {($ Id.VSub_DollarName std_shrext)}
                                                    {<.so>}
                                                    {<.a>}
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName searchdir) 
                                                                <'/lib'> (${ Id.VSub_Name name) (${ Id.VSub_Name search_ext)
                                                              )
                                                            }
                                                          spids: [25752]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName search_ext
                                                                                  )
                                                                                )
                                                                              } {<Id.Lit_Equals '='>} {(DQ <.la>)}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'found='
                                                                                >
                                                                              name: found
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<yes>}
                                                                          spids: [25797]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [25779 25794]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'found='>
                                                                          name: found
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<no>}
                                                                      spids: [25804]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              token: <Id.ControlFlow_Break break>
                                                              arg_word: {<2>}
                                                            )
                                                          ]
                                                          spids: [25765 25776]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName found))} 
                                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName linkmode) 
                                                                  <','> ($ Id.VSub_DollarName pass)
                                                                )
                                                              } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'compile_deplibs='>
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName compile_deplibs)
                                                              )
                                                            }
                                                          spids: [25866]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'finalize_deplibs='>
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName 
finalize_deplibs
                                                                )
                                                              )
                                                            }
                                                          spids: [25874]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [25846 25863]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          name: deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName deplibs)
                                                          )
                                                        }
                                                      spids: [25885]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                                      {<Id.Lit_Equals '='>} {<lib>}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'newdependency_libs='
                                                                >
                                                              name: newdependency_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName 
newdependency_libs
                                                                )
                                                              )
                                                            }
                                                          spids: [25905]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [25825 25839]
                                        )
                                      ]
                                      else_action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {
                                                            (DQ <X> 
                                                              ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                        )
                                                      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
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'library_names='
                                                                            >
                                                                          name: library_names
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (rhs_word.Empty)
                                                                      spids: [25988]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'old_library='
                                                                            >
                                                                          name: old_library
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (rhs_word.Empty)
                                                                      spids: [25991]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (C {<func_source>} 
                                                                  {(DQ ($ Id.VSub_DollarName lib))}
                                                                )
                                                                (command.ForEach
                                                                  iter_names: [l]
                                                                  iterable: 
                                                                    (for_iter.Words
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
old_library
                                                                          )
                                                                        }
                                                                        {
                                                                          ($ Id.VSub_DollarName 
library_names
                                                                          )
                                                                        }
                                                                      ]
                                                                    )
                                                                  body: 
                                                                    (command.DoGroup
                                                                      children: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'll='
                                                                                    >
                                                                                  name: ll
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName l
                                                                                    )
                                                                                  )
                                                                                }
                                                                              spids: [26015]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                    )
                                                                  redirects: []
                                                                )
                                                                (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
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'found='
                                                                                    >
                                                                                  name: found
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<no>}
                                                                              spids: [26048]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (C {<func_dirname>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
lib
                                                                              )
                                                                            )
                                                                          } {(DQ )} {(DQ <.>)}
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'ladir='
                                                                                    >
                                                                                  name: ladir
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName func_dirname_result
                                                                                    )
                                                                                  )
                                                                                }
                                                                              spids: [26066]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'lib='
                                                                                    >
                                                                                  name: lib
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName ladir
                                                                                  ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                }
                                                                              spids: [26072]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.If
                                                                          arms: [
                                                                            (if_arm
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (C {<test>} 
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName linkmode
                                                                                              ) <','> ($ Id.VSub_DollarName pass)
                                                                                            )
                                                                                          } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'compile_deplibs='
                                                                                            >
                                                                                          name: 
compile_deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName deplib
                                                                                            ) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                                                          )
                                                                                        }
                                                                                      spids: [26098]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'finalize_deplibs='
                                                                                            >
                                                                                          name: 
finalize_deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName deplib
                                                                                            ) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                                                          )
                                                                                        }
                                                                                      spids: [26106]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              spids: [26078 26095]
                                                                            )
                                                                          ]
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'deplibs='
                                                                                        >
                                                                                      name: deplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName deplib
                                                                                        ) <' '> ($ Id.VSub_DollarName deplibs)
                                                                                      )
                                                                                    }
                                                                                  spids: [26117]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DAmp]
                                                                              children: [
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName linkmode
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {<lib>}
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'newdependency_libs='
                                                                                            >
                                                                                          name: 
newdependency_libs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName deplib
                                                                                            ) <' '> ($ Id.VSub_DollarName newdependency_libs)
                                                                                          )
                                                                                        }
                                                                                      spids: [26137]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ControlFlow
                                                                          token: 
                                                                            <
Id.ControlFlow_Continue continue
                                                                            >
                                                                        )
                                                                      ]
                                                                      spids: [26024 26042]
                                                                    )
                                                                  ]
                                                                  else_action: []
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [25976 25985]
                                                            )
                                                          ]
                                                          else_action: []
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [25966 25973 26157 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: []
                                                      spids: [26160 26161 26163 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [25933 25950]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [25603 25605 26175 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.ltframework>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                          ($ Id.VSub_DollarName pass)
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                  spids: [26206]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                  spids: [26214]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [26186 26203]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                              spids: [26225]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<lib>}
                                                        )
                                                      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 '*'>
                                                        }
                                                      ]
                                                      action: []
                                                      spids: [26260 26267 26269 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'new_inherited_linker_flags='
                                                                    >
                                                                  name: new_inherited_linker_flags
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                                    ) <' '> ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              spids: [26276]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [26272 26274 26283 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [26233 26247]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [26181 26183 26298 -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
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                  spids: [26317]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                  {<Id.Lit_Equals '='>} {<conv>}
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName newdependency_libs)
                                                      )
                                                    }
                                                  spids: [26340]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName deplib))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newlib_search_path='>
                                                      name: newlib_search_path
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName newlib_search_path) 
                                                        <' '> ($ Id.VSub_DollarName func_stripname_result)
                                                      )
                                                    }
                                                  spids: [26362]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [26313 26314 26370 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} {<conv>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [26393]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [26377 26390]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} {<scan>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [26423]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [26407 26420]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          name: compile_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName compile_deplibs)
                                                          )
                                                        }
                                                      spids: [26434]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          name: finalize_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName finalize_deplibs)
                                                          )
                                                        }
                                                      spids: [26442]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName deplib))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newlib_search_path='>
                                                      name: newlib_search_path
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName newlib_search_path) 
                                                        <' '> ($ Id.VSub_DollarName func_stripname_result)
                                                      )
                                                    }
                                                  spids: [26467]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [26373 26374 26475 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) <'-L\' is ignored for archives/objects'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [26478 26479 26490 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [26301 26303 26502 -1]
                                )
                                (case_arm
                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                      {<Id.Lit_Equals '='>} {<link>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName deplib))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                  spids: [26543]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [26561 26568 26570 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'xrpath='>
                                                              name: xrpath
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName xrpath) <' '> 
                                                                ($ Id.VSub_DollarName dir)
                                                              )
                                                            }
                                                          spids: [26576]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [26573 26574 26583 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [26513 26526]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                          spids: [26592]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [26508 26510 26603 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib='>
                                              name: lib
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName deplib))}
                                          spids: [26610]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [26606 26608 26615 -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>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                      {<Id.Lit_Equals '='>} {<conv>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                  spids: [26640]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [26624 26637]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [26684 26691 26693 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'valid_a_lib='>
                                                              name: valid_a_lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [26700]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'match_pattern_regex='
                                                                        >
                                                                      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 '\\'> <')'>
                                                                              )
                                                                            }
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  spids: [26726]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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 '\\$'
                                                                                            >
                                                                                          ch: '$'
                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                                                                                        ($ 
Id.VSub_DollarName deplib
                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '2>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 2
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          <
'/dev/null'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  more_env: []
                                                                                  do_fork: T
                                                                                )
                                                                                (C 
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName Xsed
                                                                                    )
                                                                                  } {<-e>} {<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'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  more_env: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              negated: F
                                                                              stderr_indices: []
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'valid_a_lib='
                                                                                >
                                                                              name: valid_a_lib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<yes>}
                                                                          spids: [26795]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [26753 26792]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [26711 26713 26802 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<pass_all>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'valid_a_lib='
                                                                        >
                                                                      name: valid_a_lib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [26809]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [26805 26806 26813 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
valid_a_lib
                                                                          )
                                                                        )
                                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (C {($ Id.VSub_DollarName ECHO)})
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: Trying to link with static lib archive '
                                                                  > ($ Id.VSub_DollarName deplib) <.>
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because the file extensions .'
                                                                  > ($ Id.VSub_DollarName libext) <' of this argument makes me believe'>
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** that it is just a static archive that I should not use here.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [26819 26833]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {($ Id.VSub_DollarName 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
                                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                                  name: deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName deplib) 
                                                                    <' '> ($ Id.VSub_DollarName deplibs)
                                                                  )
                                                                }
                                                              spids: [26909]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [26696 26697 26920 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [26661 26662 26929 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName pass))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<link>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [26953]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [26936 26950]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          name: compile_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName compile_deplibs)
                                                          )
                                                        }
                                                      spids: [26964]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          name: finalize_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName finalize_deplibs)
                                                          )
                                                        }
                                                      spids: [26972]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [26932 26933 26986 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [26618 26621 26995 -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>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                      {<Id.Lit_Equals '='>} {<conv>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                  spids: [27028]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [27012 27025]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                                      {<Id.Lit_Equals '='>} {<prog>}
                                                    )
                                                  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>} 
                                                                  {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} {<dlpreopen>}
                                                                )
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
dlopen_support
                                                                      )
                                                                    )
                                                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                )
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
build_libtool_libs
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<no>}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'newdlprefiles='>
                                                              name: newdlprefiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName newdlprefiles) <' '> ($ Id.VSub_DollarName deplib)
                                                              )
                                                            }
                                                          spids: [27101]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'compile_deplibs='>
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName compile_deplibs)
                                                              )
                                                            }
                                                          spids: [27109]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'finalize_deplibs='>
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName 
finalize_deplibs
                                                                )
                                                              )
                                                            }
                                                          spids: [27117]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [27052 27090]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'newdlfiles='>
                                                          name: newdlfiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName newdlfiles) <' '> 
                                                            ($ Id.VSub_DollarName deplib)
                                                          )
                                                        }
                                                      spids: [27128]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [27036 27049]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27001 27009 27145 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Other '%'> <DEPLIBS> <Id.Lit_Other '%'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'alldeplibs='>
                                              name: alldeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [27154]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27148 27151 27161 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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 found))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName lib))})
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<Id.Lit_Colon ':'>})]
                                  spids: [27171 27194]
                                )
                              ]
                              else_action: [
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'cannot find the library '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName lib) <'\' or unhandled argument '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName deplib) <'\''>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName lib))})
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ 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 left:<Id.Lit_VarLike 'ladir='> name:ladir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                                  spids: [27257]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27264]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlopen='> name:dlopen)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27267]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'dlpreopen='>
                                      name: dlpreopen
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27270]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27273]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27276]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'old_library='>
                                      name: old_library
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27279]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'inherited_linker_flags='>
                                      name: inherited_linker_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27282]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'installed='>
                                      name: installed
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [27293]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'shouldnotlink='>
                                      name: shouldnotlink
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [27297]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'avoidtemprpath='>
                                      name: avoidtemprpath
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27301]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'tmp_inherited_linker_flags='>
                                              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 <X> 
                                                            ($ Id.VSub_DollarName 
inherited_linker_flags
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {
                                                          (SQ 
                                                            <
's/-framework \\([^ $]*\\)/\\1.ltframework/g'
                                                            >
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [27336]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [tmp_inherited_linker_flag]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName tmp_inherited_linker_flags)}]
                                        )
                                      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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [27388 27395 27397 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'new_inherited_linker_flags='
                                                                >
                                                              name: new_inherited_linker_flags
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                                ) <' '> ($ Id.VSub_DollarName tmp_inherited_linker_flag)
                                                              )
                                                            }
                                                          spids: [27403]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [27400 27401 27409 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [27322 27333]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                      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 <'X '> ($ Id.VSub_DollarName dependency_libs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [27421]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                              children: [
                                                (C {<test>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                      ($ Id.VSub_DollarName pass)
                                                    )
                                                  } {<Id.Lit_Equals '='>} {(DQ <'lib,link'>)}
                                                )
                                                (C {<test>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                      ($ Id.VSub_DollarName pass)
                                                    )
                                                  } {<Id.Lit_Equals '='>} {(DQ <'prog,scan'>)}
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<prog>}
                                                            )
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<lib>}
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dlopen))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlfiles='>
                                                  name: dlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dlfiles) <' '> 
                                                    ($ Id.VSub_DollarName dlopen)
                                                  )
                                                }
                                              spids: [27529]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dlpreopen))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlprefiles='>
                                                  name: dlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dlprefiles) <' '> 
                                                    ($ Id.VSub_DollarName dlpreopen)
                                                  )
                                                }
                                              spids: [27547]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [27450 27516]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                              {<Id.Lit_Equals '='>} {<conv>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                          spids: [27579]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                            ch: '`'
                                                          ) ($ Id.VSub_DollarName lib) <'\''>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [27601 27612]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'convenience='>
                                                      name: convenience
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName convenience) <' '> 
                                                        ($ Id.VSub_DollarName ladir) <'/'> ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName old_library)
                                                      )
                                                    }
                                                  spids: [27632]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'old_convenience='>
                                                      name: old_convenience
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName old_convenience) <' '> 
                                                        ($ Id.VSub_DollarName ladir) <'/'> ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName old_library)
                                                      )
                                                    }
                                                  spids: [27644]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                                      name: tmp_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [27656]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [27671]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
opt_duplicate_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: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'specialdeplibs='
                                                                                >
                                                                              name: specialdeplibs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName specialdeplibs
                                                                                ) <' '> ($ Id.VSub_DollarName deplib)
                                                                              )
                                                                            }
                                                                          spids: [27707]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [27698 27705 27714 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [27679 27685]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                                              name: tmp_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tmp_libs) 
                                                                <' '> ($ Id.VSub_DollarName deplib)
                                                              )
                                                            }
                                                          spids: [27723]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [27587 27598]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<prog>}
                                                        )
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<lib>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName lib) <'\' is not a convenience library'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [27734 27761]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27559 27572]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'linklib='>
                                      name: linklib
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [27791]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [l]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName old_library)}
                                    {($ Id.VSub_DollarName library_names)}
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linklib='>
                                              name: linklib
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName l))}
                                          spids: [27808]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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 '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName lib) <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [27817 27828]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                              {<Id.Lit_Equals '='>} {<dlopen>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (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: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ <'cannot -dlopen a convenience library: '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName lib) <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [27865 27876]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName dlname))}
                                                        )
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName dlopen_support))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
build_libtool_libs
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlprefiles='>
                                                      name: dlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dlprefiles) <' '> 
                                                        ($ Id.VSub_DollarName lib) <' '> ($ Id.VSub_DollarName dependency_libs)
                                                      )
                                                    }
                                                  spids: [27949]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [27892 27930]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlfiles='>
                                                  name: newdlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName newdlfiles) <' '> 
                                                    ($ Id.VSub_DollarName lib)
                                                  )
                                                }
                                              spids: [27962]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27849 27862]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName ladir)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                        ch: '\\'
                                      ) <'/'> <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 '\\\\'> ch:'\\') <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'abs_ladir='>
                                              name: abs_ladir
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName ladir))}
                                          spids: [28013]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [27994 28011 28018 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'abs_ladir='>
                                              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>})
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [28025]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ 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
                                                      left: <Id.Lit_VarLike 'abs_ladir='>
                                                      name: abs_ladir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName ladir))}
                                                  spids: [28072]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28041 28052]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [28021 28022 28081 -1]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName lib))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'laname='> name:laname)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                  spids: [28094]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName installed))} 
                                              {<Id.Lit_Equals '='>} {<Xyes>}
                                            )
                                          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 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 '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName lib) <'\' was moved.'>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName ladir))}
                                                  spids: [28162]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'absdir='>
                                                      name: absdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName abs_ladir))}
                                                  spids: [28168]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName abs_ladir))}
                                                  spids: [28174]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28122 28149]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  name: dir
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName libdir))}
                                              spids: [28183]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'absdir='>
                                                  name: absdir
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName libdir))}
                                              spids: [28189]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName hardcode_automatic))} 
                                          {<Id.Lit_Equals '='>} {<Xyes>}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'avoidtemprpath='>
                                                  name: avoidtemprpath
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [28211]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [28105 28119]
                                )
                              ]
                              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
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  name: dir
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName ladir))}
                                              spids: [28250]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'absdir='>
                                                  name: absdir
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName abs_ladir))}
                                              spids: [28256]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'notinst_path='>
                                                  name: notinst_path
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName notinst_path) <' '> 
                                                    ($ Id.VSub_DollarName abs_ladir)
                                                  )
                                                }
                                              spids: [28266]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [28218 28247]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName ladir) <'/'> 
                                                ($ Id.VSub_DollarName objdir)
                                              )
                                            }
                                          spids: [28277]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'absdir='>
                                              name: absdir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName abs_ladir) <'/'> 
                                                ($ Id.VSub_DollarName objdir)
                                              )
                                            }
                                          spids: [28285]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'notinst_path='>
                                              name: notinst_path
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName notinst_path) <' '> 
                                                ($ Id.VSub_DollarName abs_ladir)
                                              )
                                            }
                                          spids: [28297]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.la>)} 
                              {(DQ ($ Id.VSub_DollarName laname))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [28329]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                              {<Id.Lit_Equals '='>} {<dlpreopen>}
                                            )
                                          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>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {
                                                (DQ 
                                                  <
'only libraries may -dlpreopen a convenience library: '
                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_DollarName lib) <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [28354 28377]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdlprefiles='>
                                                      name: newdlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName newdlprefiles) <' '> 
                                                        ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName old_library)
                                                      )
                                                    }
                                                  spids: [28415]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName libdir))})
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'dlpreconveniencelibs='>
                                                          name: dlpreconveniencelibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
dlpreconveniencelibs
                                                            ) <' '> ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName old_library)
                                                          )
                                                        }
                                                      spids: [28445]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [28401 28412]
                                        )
                                        (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
                                                      left: <Id.Lit_VarLike 'newdlprefiles='>
                                                      name: newdlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName newdlprefiles) <' '> 
                                                        ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName dlname)
                                                      )
                                                    }
                                                  spids: [28473]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28459 28470]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlprefiles='>
                                                  name: newdlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName newdlprefiles) <' '> 
                                                    ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName linklib)
                                                  )
                                                }
                                              spids: [28486]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [28338 28351]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                                      {<Id.Lit_Equals '='>} {<lib>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                  spids: [28540]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28524 28537]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                          ($ Id.VSub_DollarName pass)
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                  spids: [28570]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                  spids: [28580]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28550 28567]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                              spids: [28593]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28506 28517]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                                  {<Id.Lit_Equals '='>} {<prog>}
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<link>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newlib_search_path='>
                                              name: newlib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName newlib_search_path) <' '> 
                                                ($ Id.VSub_DollarName ladir)
                                              )
                                            }
                                          spids: [28644]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                          spids: [28652]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linkalldeplibs='>
                                              name: linkalldeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [28661]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName link_all_deplibs)
                                                            )
                                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName library_names))}
                                                        )
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
build_libtool_libs
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'linkalldeplibs='>
                                                      name: linkalldeplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [28705]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28665 28702]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [28713]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      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))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'newlib_search_path='
                                                                >
                                                              name: newlib_search_path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
newlib_search_path
                                                                ) <' '> ($ Id.VSub_DollarName func_stripname_result)
                                                              )
                                                            }
                                                          spids: [28753]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28735 28737 28761 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
linkalldeplibs
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [28787]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28771 28784]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'newdependency_libs='>
                                                          name: newdependency_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName newdependency_libs)
                                                          )
                                                        }
                                                      spids: [28806]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C 
                                                              {
                                                                ($ Id.VSub_DollarName 
opt_duplicate_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: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'specialdeplibs='
                                                                        >
                                                                      name: specialdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
specialdeplibs
                                                                        ) <' '> ($ Id.VSub_DollarName deplib)
                                                                      )
                                                                    }
                                                                  spids: [28845]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [28836 28843 28852 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28817 28823]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                                      name: tmp_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName tmp_libs) <' '> 
                                                        ($ Id.VSub_DollarName deplib)
                                                      )
                                                    }
                                                  spids: [28861]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28615 28641]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                  ($ Id.VSub_DollarName pass)
                                                )
                                              } {<Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                            )
                                          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
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DPipe]
                                                                              children: [
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName prefer_static_libs
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {<no>}
                                                                                )
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName prefer_static_libs
                                                                                      ) <','> ($ Id.VSub_DollarName installed)
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {(DQ <'built,yes'>)}
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                    (C {<test>} {<-z>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
old_library
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                    )
                                                  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: 
                                                        {(DQ ($ Id.VSub_DollarName temp_rpath) <':'>)}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ ($ Id.VSub_DollarName absdir) <':'>) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [29013 29019 29021 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'temp_rpath='
                                                                        >
                                                                      name: temp_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
temp_rpath
                                                                        ) ($ Id.VSub_DollarName absdir) <':'>
                                                                      )
                                                                    }
                                                                  spids: [29027]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29024 29025 29034 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [28974 28996]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [29067 29074 29076 -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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [29093 29100 29102 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'compile_rpath='
                                                                        >
                                                                      name: compile_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
compile_rpath
                                                                        ) <' '> ($ Id.VSub_DollarName absdir)
                                                                      )
                                                                    }
                                                                  spids: [29108]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29105 29106 -1 29116]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29079 29080 29119 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [29136 29143 29145 -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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [29162 29169 29171 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'finalize_rpath='
                                                                        >
                                                                      name: finalize_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
finalize_rpath
                                                                        ) <' '> ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  spids: [29177]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29174 29175 -1 29185]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29148 29149 29188 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [28905 28967]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName alldeplibs))} {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (BraceGroup
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
deplibs_check_method
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<pass_all>}
                                                                    )
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              ops: [Id.Op_DAmp]
                                                                              children: [
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName build_libtool_libs
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {<yes>}
                                                                                )
                                                                                (C {<test>} {<-n>} 
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName library_names
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [29201 29261]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [28885 28902]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_static='>
                                      name: link_static
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [29278]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'use_static_libs='>
                                      name: use_static_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName prefer_static_libs)}
                                  spids: [29285]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} 
                                                  {(DQ ($ Id.VSub_DollarName use_static_libs))} {<Id.Lit_Equals '='>} {<built>}
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName installed))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'use_static_libs='>
                                              name: use_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [29317]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [29289 29314]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          ops: [Id.Op_DPipe]
                                                          children: [
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
use_static_libs
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<no>}
                                                            )
                                                            (C {<test>} {<-z>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName old_library)
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          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 '*'>}
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'notinst_deplibs='>
                                                      name: notinst_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName notinst_deplibs) <' '> 
                                                        ($ Id.VSub_DollarName lib)
                                                      )
                                                    }
                                                  spids: [29395]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'need_relink='>
                                                      name: need_relink
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<no>}
                                                  spids: [29403]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29373 29388 29407 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName installed))} {<Id.Lit_Equals '='>} {<no>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'notinst_deplibs='>
                                                              name: notinst_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName notinst_deplibs) <' '> ($ Id.VSub_DollarName lib)
                                                              )
                                                            }
                                                          spids: [29430]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'need_relink='>
                                                              name: need_relink
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [29438]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29414 29427]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [29410 29411 29445 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlopenmodule='>
                                              name: dlopenmodule
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [29464]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [dlpremoduletest]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dlprefiles)}]
                                        )
                                      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
                                                              left: <Id.Lit_VarLike 'dlopenmodule='>
                                                              name: dlopenmodule
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName dlpremoduletest)
                                                              )
                                                            }
                                                          spids: [29501]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [29481 29498]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (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>} 
                                                          {(DQ ($ Id.VSub_DollarName shouldnotlink))} {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                                          {<Id.Lit_Equals '='>} {<link>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {($ Id.VSub_DollarName ECHO)})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ <'*** Warning: Linking the executable '> 
                                                          ($ Id.VSub_DollarName output) <' against the loadable module'>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [29557 29570]
                                                )
                                              ]
                                              else_action: [
                                                (C {($ Id.VSub_DollarName ECHO)} 
                                                  {
                                                    (DQ <'*** Warning: Linking the shared library '> 
                                                      ($ Id.VSub_DollarName output) <' against the loadable module'>
                                                    )
                                                  }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ <'*** '> ($ Id.VSub_DollarName linklib) 
                                                  <' is not portable!'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [29516 29551]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<lib>}
                                                        )
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
hardcode_into_libs
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                      ]
                                                    )
                                                  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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [29661 29668 29670 -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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [29687 29694 29696 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'compile_rpath='
                                                                        >
                                                                      name: compile_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
compile_rpath
                                                                        ) <' '> ($ Id.VSub_DollarName absdir)
                                                                      )
                                                                    }
                                                                  spids: [29702]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29699 29700 -1 29710]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29673 29674 29713 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [29730 29737 29739 -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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [29756 29763 29765 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'finalize_rpath='
                                                                        >
                                                                      name: finalize_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
finalize_rpath
                                                                        ) <' '> ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  spids: [29771]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29768 29769 -1 29779]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29742 29743 29782 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29609 29635]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'realname='>
                                                      name: realname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_Number 1))}
                                                  spids: [29820]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<shift>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libname='>
                                                      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 '\\$'>
                                                                  ch: '$'
                                                                ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                              )
                                                            }
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [29829]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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
                                                              left: <Id.Lit_VarLike 'soname='>
                                                              name: soname
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName dlname))}
                                                          spids: [29869]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29855 29866]
                                                )
                                                (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 '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (C {<func_arith>} 
                                                              {($ Id.VSub_DollarName current)} {<->} {($ Id.VSub_DollarName age)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'major='>
                                                                      name: major
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_arith_result
                                                                      )
                                                                    }
                                                                  spids: [29926]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'versuffix='>
                                                                      name: versuffix
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-> 
                                                                        ($ Id.VSub_DollarName major)
                                                                      )
                                                                    }
                                                                  spids: [29930]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [29900 29914 29937 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'soname='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) ($ Id.VSub_DollarName soname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                      }
                                                    )
                                                  ]
                                                  spids: [29875 29886]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'soname='>
                                                          name: soname
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName realname))}
                                                      spids: [29954]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'soroot='>
                                                      name: soroot
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName soname))}
                                                  spids: [29968]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName soroot))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'soname='>
                                                      name: soname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                                  spids: [29981]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.dll>)} 
                                              {(DQ ($ Id.VSub_DollarName soname))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newlib='>
                                                      name: newlib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<libimp-> 
                                                      ($ Id.VSub_DollarName func_stripname_result) <.a>
                                                    }
                                                  spids: [30002]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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: [30013 30027]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'extracting exported symbol list from '> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\`'>
                                                        ch: '`'
                                                      ) ($ Id.VSub_DollarName soname) <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {(DQ ($ Id.VSub_DollarName extract_expsyms_cmds))} {(SQ <'exit $?'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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: [30064 30077]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'generating import library for '> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\`'>
                                                        ch: '`'
                                                      ) ($ Id.VSub_DollarName soname) <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
old_archive_from_expsyms_cmds
                                                      )
                                                    )
                                                  } {(SQ <'exit $?'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName output_objdir)}
                                                  spids: [30113]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'linklib='>
                                                      name: linklib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName newlib)}
                                                  spids: [30117]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29792 29803]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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 linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                        )
                                                        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<relink>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_shlibpath='>
                                                      name: add_shlibpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [30157]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      name: add_dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [30160]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add='>
                                                      name: add
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [30163]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib_linked='>
                                                      name: lib_linked
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [30166]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_direct
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<no>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName dir) 
                                                                        <'/'> ($ Id.VSub_DollarName linklib)
                                                                      )
                                                                    }
                                                                  spids: [30201]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName dir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [30226]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30216 30224 30232 -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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName dir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [30244]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30235 30242 30250 -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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName dir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [30285]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30253 30283 30291 -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'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          more_env: []
                                                                                          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'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          more_env: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      ]
                                                                                      negated: F
                                                                                      stderr_indices: []
                                                                                    )
                                                                                  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 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                                )
                                                                                              } {(DQ <'*** And there doesn\'t seem to be a static archive available'>)}
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                                )
                                                                                              } {(DQ <'*** The link will probably fail, sorry'>)}
                                                                                            )
                                                                                          ]
                                                                                          spids: [
30370
30382
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_action: [
                                                                                        (command.ShAssignment
                                                                                          pairs: [
                                                                                            (assign_pair
                                                                                              lhs: 
                                                                                                (sh_lhs_expr.Name
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'add='
                                                                                                    >
                                                                                                  name: 
add
                                                                                                )
                                                                                              op: 
assign_op.Equal
                                                                                              rhs: 
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName dir
                                                                                                    ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                                  )
                                                                                                }
                                                                                              spids: [
30405
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          redirects: []
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [30340 30358]
                                                                                )
                                                                                (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
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'add='
                                                                                                >
                                                                                              name: 
add
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName dir
                                                                                                ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                              )
                                                                                            }
                                                                                          spids: [
30430
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [30416 30427]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [30311 30337]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30294 30300 -1 30444]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30185 30198]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<no>}
                                                                    )
                                                                  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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_shlibpath='
                                                                                >
                                                                              name: add_shlibpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName dir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [30477]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30470 30475 30482 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-L> 
                                                                        ($ Id.VSub_DollarName dir)
                                                                      )
                                                                    }
                                                                  spids: [30488]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [30495]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30447 30460]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<no>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'add_shlibpath='
                                                                        >
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(DQ ($ Id.VSub_DollarName dir))}
                                                                  spids: [30518]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [30524]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30502 30515]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'lib_linked='>
                                                                  name: lib_linked
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [30534]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [30177 30182 30541 -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>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
hardcode_direct
                                                                              )
                                                                            )
                                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                                        )
                                                                        (C {<test>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
hardcode_direct_absolute
                                                                              )
                                                                            )
                                                                          } {<Id.Lit_Equals '='>} {<no>}
                                                                        )
                                                                      ]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName dir) 
                                                                        <'/'> ($ Id.VSub_DollarName linklib)
                                                                      )
                                                                    }
                                                                  spids: [30577]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30548 30574]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-L> 
                                                                        ($ Id.VSub_DollarName dir)
                                                                      )
                                                                    }
                                                                  spids: [30601]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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 '\\\\'
                                                                                  >
                                                                                ch: '\\'
                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'add_dir='
                                                                                        >
                                                                                      name: add_dir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName add_dir
                                                                                        ) <' -L'> ($ Id.VSub_DollarName inst_prefix_dir) ($ Id.VSub_DollarName libdir)
                                                                                      )
                                                                                    }
                                                                                  spids: [30641]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [30633 30638 30650 -1]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30612 30623]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [30659]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30585 30598]
                                                        )
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'add_shlibpath='
                                                                        >
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(DQ ($ Id.VSub_DollarName dir))}
                                                                  spids: [30682]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [30688]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30666 30679]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'lib_linked='>
                                                                  name: lib_linked
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [30698]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [30544 30545 30705 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib_linked='>
                                                              name: lib_linked
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [30711]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [30708 30709 30714 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName lib_linked))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<func_fatal_configuration>} 
                                                      {(DQ <'unsupported hardcode properties'>)}
                                                    )
                                                  ]
                                                  spids: [30721 30735]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [30772 30779 30781 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'compile_shlibpath='
                                                                        >
                                                                      name: compile_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
compile_shlibpath
                                                                        ) ($ Id.VSub_DollarName add_shlibpath) <':'>
                                                                      )
                                                                    }
                                                                  spids: [30787]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30784 30785 30794 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [30749 30760]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                            )
                                                          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
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'compile_deplibs='
                                                                    >
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add_dir) 
                                                                    <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                                  )
                                                                }
                                                              spids: [30829]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                    (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
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'compile_deplibs='
                                                                    >
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                    ($ Id.VSub_DollarName 
compile_deplibs
                                                                    )
                                                                  )
                                                                }
                                                              spids: [30847]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30803 30816]
                                                )
                                              ]
                                              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
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add_dir) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [30868]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                                (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
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [30886]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_direct
                                                                          )
                                                                        )
                                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                          )
                                                                        )
                                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  ]
                                                                )
                                                              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 '*'>
                                                                }
                                                              ]
                                                              action: []
                                                              spids: [30947 30954 30956 -1]
                                                            )
                                                            (case_arm
                                                              pat_list: [{<Id.Lit_Star '*'>}]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'finalize_shlibpath='
                                                                            >
                                                                          name: finalize_shlibpath
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
finalize_shlibpath
                                                                            ) ($ Id.VSub_DollarName libdir) <':'>
                                                                          )
                                                                        }
                                                                      spids: [30962]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [30959 30960 30969 -1]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [30894 30935]
                                                    )
                                                  ]
                                                  else_action: []
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [30128 30154]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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 linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                        )
                                                        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                                          {<Id.Lit_Equals '='>} {<relink>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_shlibpath='>
                                                      name: add_shlibpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [31013]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      name: add_dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [31016]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add='>
                                                      name: add
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [31019]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
hardcode_direct
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<yes>}
                                                                )
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
hardcode_direct_absolute
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<no>}
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName libdir) <'/'> 
                                                                ($ Id.VSub_DollarName linklib)
                                                              )
                                                            }
                                                          spids: [31055]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31026 31052]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add_dir='>
                                                              name: add_dir
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(DQ <-L> ($ Id.VSub_DollarName libdir))}
                                                          spids: [31079]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <-l> ($ Id.VSub_DollarName name))}
                                                          spids: [31086]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31063 31076]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [31118 31125 31127 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'finalize_shlibpath='
                                                                        >
                                                                      name: finalize_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
finalize_shlibpath
                                                                        ) ($ Id.VSub_DollarName libdir) <':'>
                                                                      )
                                                                    }
                                                                  spids: [31133]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [31130 31131 31140 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <-l> ($ Id.VSub_DollarName name))}
                                                          spids: [31146]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31093 31106]
                                                )
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
hardcode_automatic
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          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
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
inst_prefix_dir
                                                                        ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName linklib)
                                                                      )
                                                                    }
                                                                  spids: [31198]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [31169 31195]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  name: add
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName libdir) 
                                                                    <'/'> ($ Id.VSub_DollarName linklib)
                                                                  )
                                                                }
                                                              spids: [31210]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31153 31166]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'add_dir='>
                                                          name: add_dir
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <-L> ($ Id.VSub_DollarName libdir))}
                                                      spids: [31228]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (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 '\\\\'>
                                                                    ch: '\\'
                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'add_dir='
                                                                            >
                                                                          name: add_dir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
add_dir
                                                                            ) <' -L'> ($ Id.VSub_DollarName inst_prefix_dir) ($ Id.VSub_DollarName libdir)
                                                                          )
                                                                        }
                                                                      spids: [31268]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [31260 31265 31277 -1]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [31239 31250]
                                                    )
                                                  ]
                                                  else_action: []
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'add='>
                                                          name: add
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <-l> ($ Id.VSub_DollarName name))}
                                                      spids: [31286]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} {<prog>}
                                                            )
                                                          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
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'finalize_deplibs='
                                                                    >
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add_dir) 
                                                                    <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                                  )
                                                                }
                                                              spids: [31323]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                    (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
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'finalize_deplibs='
                                                                    >
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                    ($ Id.VSub_DollarName 
finalize_deplibs
                                                                    )
                                                                  )
                                                                }
                                                              spids: [31341]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31297 31310]
                                                )
                                              ]
                                              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
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add_dir) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [31362]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                                (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
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                          spids: [31380]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [30985 31010]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [29324 29363]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                              {<Id.Lit_Equals '='>} {<prog>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName hardcode_direct))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<unsupported>}
                                                    )
                                                  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
                                                          left: <Id.Lit_VarLike 'linklib='>
                                                          name: linklib
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName old_library))}
                                                      spids: [31449]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName linklib) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                  spids: [31455]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName linklib) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                  spids: [31465]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [31422 31436]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  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: [31478]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  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: [31489]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [31394 31407]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName deplibs_check_method)
                                                        )
                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<pass_all>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {($ Id.VSub_DollarName ECHO)})
                                            (C {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ 
                                                  <
'*** Warning: This system can not link to static lib archive '
                                                  > ($ Id.VSub_DollarName lib) <.>
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ 
                                                  <
'*** I have the capability to make that library automatically link in when'
                                                  >
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ 
                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                  >
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName 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>} 
                                                              {(DQ ($ Id.VSub_DollarName module))} {<Id.Lit_Equals '='>} {<yes>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ 
                                                          <
'*** But as you try to build a module library, libtool will still create '
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ 
                                                          <
'*** a static module, that should work as long as the dlopening application'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)})
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** However, this would only work if libtool was able to extract symbol'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** lists from a program, using '
                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                                                  <
'nm\' or equivalent, but libtool could'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** not find such a program.  So, this module is probably useless.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ <'*** '> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                                    ch: '`'
                                                                  ) <'nm\' from GNU binutils and a full rebuild may help.'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [31627 31638]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
build_old_libs
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<no>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'build_libtool_libs='
                                                                        >
                                                                      name: build_libtool_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<module>}
                                                                  spids: [31695]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'build_old_libs='
                                                                        >
                                                                      name: build_old_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [31699]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [31679 31692]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_libtool_libs='
                                                                    >
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [31706]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31590 31603]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [31523 31537]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                              spids: [31719]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'link_static='>
                                                  name: link_static
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [31729]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [31503 31516]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                              {<Id.Lit_Equals '='>} {<lib>}
                                            )
                                          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
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
hardcode_into_libs
                                                                          )
                                                                        )
                                                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
build_old_libs
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
link_static
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<yes>}
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'temp_deplibs='>
                                                      name: temp_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [31822]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [libdir]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              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
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'temp_xrpath='
                                                                        >
                                                                      name: temp_xrpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_stripname_result
                                                                      )
                                                                    }
                                                                  spids: [31862]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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 '*'>
                                                                    }
                                                                  ]
                                                                  action: []
                                                                  spids: [31877 31884 31886 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'xrpath='
                                                                                >
                                                                              name: xrpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName xrpath
                                                                                ) <' '> ($ Id.VSub_DollarName temp_xrpath)
                                                                              )
                                                                            }
                                                                          spids: [31892]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [31889 31890 31898 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [31844 31846 31902 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'temp_deplibs='
                                                                        >
                                                                      name: temp_deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
temp_deplibs
                                                                        ) <' '> ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  spids: [31908]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [31905 31906 31914 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                                      name: dependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName temp_deplibs))}
                                                  spids: [31923]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [31759 31815]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newlib_search_path='>
                                              name: newlib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName newlib_search_path) <' '> 
                                                ($ Id.VSub_DollarName absdir)
                                              )
                                            }
                                          spids: [31933]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName link_static))} 
                                          {<Id.Lit_Equals '='>} {<no>}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  name: newdependency_libs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName abs_ladir) <'/'> 
                                                    ($ Id.VSub_DollarName laname) <' '> ($ Id.VSub_DollarName newdependency_libs)
                                                  )
                                                }
                                              spids: [31957]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [31971]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName newdependency_libs)
                                                      )
                                                    }
                                                  spids: [31986]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C 
                                                              {
                                                                ($ Id.VSub_DollarName 
opt_duplicate_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: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'specialdeplibs='
                                                                        >
                                                                      name: specialdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
specialdeplibs
                                                                        ) <' '> ($ Id.VSub_DollarName deplib)
                                                                      )
                                                                    }
                                                                  spids: [32022]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [32013 32020 32029 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [31994 32000]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                                      name: tmp_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName tmp_libs) <' '> 
                                                        ($ Id.VSub_DollarName deplib)
                                                      )
                                                    }
                                                  spids: [32038]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName link_all_deplibs))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'path='>
                                                              name: path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word.Empty)
                                                          spids: [32083]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: <Id.Lit_VarLike 'path='>
                                                                      name: path
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName deplib)
                                                                      )
                                                                    }
                                                                  spids: [32097]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [32093 32095 32102 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_dirname>} 
                                                              {(DQ ($ Id.VSub_DollarName deplib))} {(DQ )} {(DQ <.>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'dir='>
                                                                      name: dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_dirname_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [32124]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              to_match: {($ Id.VSub_DollarName dir)}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_LBracket '['> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\\\'>
                                                                        ch: '\\'
                                                                      ) <'/'> <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 '\\\\'>
                                                                        ch: '\\'
                                                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'absdir='
                                                                                >
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName dir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [32160]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [32141 32158 32165 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'absdir='
                                                                                >
                                                                              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>})
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                          spids: [32172]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (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 '
                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_DollarName dir) <'\''>
                                                                                )
                                                                              }
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'absdir='
                                                                                        >
                                                                                      name: absdir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName dir
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [32212]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [32188 32199]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [32168 32169 32221 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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'>}
                                                                                )
                                                                              ]
                                                                              more_env: []
                                                                              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
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                        >
                                                                                      name: depdepl
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word.Empty)
                                                                                  spids: [32260]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (C {<eval>} 
                                                                              {
                                                                                <Id.Lit_VarLike 
'deplibrary_names='
                                                                                > 
                                                                                (command_sub
                                                                                  left_token: 
                                                                                    <
Id.Left_Backtick '`'
                                                                                    >
                                                                                  child: 
                                                                                    (C 
                                                                                      {
                                                                                        (${ 
Id.VSub_Name SED
                                                                                        )
                                                                                      } {<-n>} {<-e>} {(SQ <'s/^library_names=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName deplib)}
                                                                                    )
                                                                                  right: 
                                                                                    <
Id.Backtick_Right '`'
                                                                                    >
                                                                                )
                                                                              }
                                                                            )
                                                                            (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_names: [
tmp
                                                                                      ]
                                                                                      iterable: 
                                                                                        (for_iter.Words
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName deplibrary_names
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                        )
                                                                                      body: 
                                                                                        (command.DoGroup
                                                                                          children: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                                        >
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
32319
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                      redirects: []
                                                                                    )
                                                                                    (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
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                                        >
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName absdir
                                                                                                        ) <'/'> ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName depdepl)
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
32345
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                        >
                                                                                                      name: 
darwin_install_name
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  (${ 
Id.VSub_Name OTOOL
                                                                                                                  )
                                                                                                                } {<-L>} {($ Id.VSub_DollarName depdepl)}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  <
awk
                                                                                                                  >
                                                                                                                } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                            stderr_indices: []
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
32355
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (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
                                                                                                              left: 
                                                                                                                <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                                >
                                                                                                              name: 
darwin_install_name
                                                                                                            )
                                                                                                          op: 
assign_op.Equal
                                                                                                          rhs: 
                                                                                                            {
                                                                                                              (command_sub
                                                                                                                left_token: 
                                                                                                                  <
Id.Left_Backtick '`'
                                                                                                                  >
                                                                                                                child: 
                                                                                                                  (command.Pipeline
                                                                                                                    children: [
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          (${ 
Id.VSub_Name OTOOL64
                                                                                                                          )
                                                                                                                        } {<-L>} {($ Id.VSub_DollarName depdepl)}
                                                                                                                      )
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          <
awk
                                                                                                                          >
                                                                                                                        } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                                      )
                                                                                                                    ]
                                                                                                                    negated: 
F
                                                                                                                    stderr_indices: []
                                                                                                                  )
                                                                                                                right: 
                                                                                                                  <
Id.Backtick_Right '`'
                                                                                                                  >
                                                                                                              )
                                                                                                            }
                                                                                                          spids: [
32391
                                                                                                          ]
                                                                                                        )
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                    )
                                                                                                  ]
                                                                                                  spids: [
32377
32388
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              else_action: []
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'compiler_flags='
                                                                                                        >
                                                                                                      name: 
compiler_flags
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName compiler_flags
                                                                                                        ) <' '> (${ Id.VSub_Name wl) <'-dylib_file '> (${ Id.VSub_Name wl) (${ Id.VSub_Name darwin_install_name) 
                                                                                                        <
':'
                                                                                                        > (${ Id.VSub_Name depdepl)
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
32416
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'linker_flags='
                                                                                                        >
                                                                                                      name: 
linker_flags
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName linker_flags
                                                                                                        ) <' -dylib_file '> (${ Id.VSub_Name darwin_install_name) <':'> (${ Id.VSub_Name depdepl)
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
32437
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'path='
                                                                                                        >
                                                                                                      name: 
path
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: (rhs_word.Empty)
                                                                                                  spids: [
32451
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          spids: [
32326
32342
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_action: []
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [32291 32303]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [32252 32257 32460 -1]
                                                                        )
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'>}
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'path='
                                                                                        >
                                                                                      name: path
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ <-L> 
                                                                                        ($ 
Id.VSub_DollarName absdir
                                                                                        ) <'/'> ($ Id.VSub_DollarName objdir)
                                                                                      )
                                                                                    }
                                                                                  spids: [32467]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [32463 32464 32476 -1]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [32227 32242]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<eval>} 
                                                                  {<Id.Lit_VarLike 'libdir='> 
                                                                    (command_sub
                                                                      left_token: 
                                                                        <Id.Left_Backtick '`'>
                                                                      child: 
                                                                        (C {(${ Id.VSub_Name SED)} 
                                                                          {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName deplib)}
                                                                        )
                                                                      right: <Id.Backtick_Right '`'>
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} {<-z>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
libdir
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<func_fatal_error>} 
                                                                      {
                                                                        (DQ 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\`'
                                                                              >
                                                                            ch: '`'
                                                                          ) ($ 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 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\`'
                                                                              >
                                                                            ch: '`'
                                                                          ) ($ Id.VSub_DollarName deplib) <'\' seems to be moved'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'path='>
                                                                          name: path
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ <-L> 
                                                                            ($ Id.VSub_DollarName 
absdir
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [32561]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [32105 32107 32571 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [32588 32595 32597 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'deplibs='>
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName path) 
                                                                        <' '> ($ Id.VSub_DollarName deplibs)
                                                                      )
                                                                    }
                                                                  spids: [32603]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [32600 32601 32610 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [32050 32064]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [31743 31756]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} 
                                      {<link>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} 
                                              {<Id.Lit_Equals '='>} {(DQ <prog>)}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              name: compile_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_inherited_linker_flags) 
                                                <' '> ($ Id.VSub_DollarName compile_deplibs)
                                              )
                                            }
                                          spids: [32671]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              name: finalize_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_inherited_linker_flags) 
                                                <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                              )
                                            }
                                          spids: [32679]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [32653 32668]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'compiler_flags='>
                                          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 <'X '> 
                                                        ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                    {
                                                      (SQ 
                                                        <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                        >
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: F
                                                stderr_indices: []
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [32690]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [32637 32650]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'dependency_libs='>
                              name: dependency_libs
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName newdependency_libs))}
                          spids: [32729]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} {<Id.Lit_Equals '='>} 
                                      {<dlpreopen>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForEach
                              iter_names: [deplib]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_deplibs)}]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                          spids: [32767]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [32735 32748]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<dlopen>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName pass))} 
                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<conv>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib_search_path='>
                                              name: lib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [32819]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName newlib_search_path)}]
                                        )
                                      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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [32844 32851 32853 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'lib_search_path='>
                                                              name: lib_search_path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName lib_search_path) <' '> ($ Id.VSub_DollarName dir)
                                                              )
                                                            }
                                                          spids: [32859]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [32856 32857 32866 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newlib_search_path='>
                                              name: newlib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [32875]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [32798 32812]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                  ($ Id.VSub_DollarName pass)
                                                )
                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'prog,link'>)}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vars='>
                                              name: vars
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <deplibs>)}
                                          spids: [32903]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [32882 32900]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vars='> name:vars)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'compile_deplibs finalize_deplibs'>)}
                                      spids: [32912]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [var]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName vars)} {<dependency_libs>}]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'tmp_libs='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName var) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'new_libs='>
                                              name: new_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [32948]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName tmp_libs)}]
                                        )
                                      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
                                                              left: <Id.Lit_VarLike 'new_libs='>
                                                              name: new_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName new_libs)
                                                              )
                                                            }
                                                          spids: [32998]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [32994 32996 33005 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                  action: []
                                                  spids: [33008 33010 33012 -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
                                                                      left: 
                                                                        <Id.Lit_VarLike 'new_libs='>
                                                                      name: new_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName deplib) <' '> ($ Id.VSub_DollarName new_libs)
                                                                      )
                                                                    }
                                                                  spids: [33095]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [33086 33093 33102 -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 '*'>
                                                                    }
                                                                  ]
                                                                  action: []
                                                                  spids: [33120 33127 33129 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'new_libs='
                                                                                >
                                                                              name: new_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                ) <' '> ($ Id.VSub_DollarName new_libs)
                                                                              )
                                                                            }
                                                                          spids: [33135]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [33132 33133 33142 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [33105 33106 33148 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [33015 33016 33154 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [33163]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName new_libs)}]
                                        )
                                      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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [33201 33208 33210 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'tmp_libs='>
                                                                      name: tmp_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
tmp_libs
                                                                        ) <' '> ($ Id.VSub_DollarName deplib)
                                                                      )
                                                                    }
                                                                  spids: [33216]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [33213 33214 33223 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [33185 33187 33229 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                                              name: tmp_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tmp_libs) 
                                                                <' '> ($ Id.VSub_DollarName deplib)
                                                              )
                                                            }
                                                          spids: [33235]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [33232 33233 33242 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (C {<eval>} 
                                      {($ Id.VSub_DollarName var) <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName tmp_libs) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [32781 32795]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp_libs='> name:tmp_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [33277]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dependency_libs)}])
                      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 left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [33318]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [33308 33315 33323 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName tmp_libs) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                          spids: [33344]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [33329 33341]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'dependency_libs='>
                              name: dependency_libs
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName tmp_libs)}
                          spids: [33358]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} 
                              {<prog>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName newdlfiles))}
                          spids: [33384]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [33368 33381]
                )
              ]
              else_action: []
              redirects: []
            )
            (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 linkmode))} {<Id.Lit_Equals '='>} 
                                  {<prog>}
                                )
                                (C {<test>} {(DQ ($ Id.VSub_DollarName linkmode))} {<Id.Lit_Equals '='>} 
                                  {<lib>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName newdlprefiles))}
                          spids: [33421]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [33393 33418]
                )
              ]
              else_action: []
              redirects: []
            )
            (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>} {(DQ ($ Id.VSub_DollarName dlself))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-dlopen\' is ignored for archives'>
                                )
                              }
                            )
                          ]
                          spids: [33442 33467]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName deplibs))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-l\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                  <'-L\' are ignored for archives'>
                                )
                              }
                            )
                          ]
                          spids: [33492 33503 33515 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName rpath))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-rpath\' is ignored for archives'>
                            )
                          }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName xrpath))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-R\' is ignored for archives'>
                            )
                          }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-export-symbols\' is ignored for archives'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              name: build_libtool_libs
                            )
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [33632]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName output))}
                          spids: [33636]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName objs) ($ Id.VSub_DollarName old_deplibs))}
                          spids: [33642]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [33438 33439 33649 -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 left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                  spids: [33688]
                                )
                              ]
                              redirects: []
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'shared_ext='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              }
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'libname='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              }
                            )
                          ]
                          spids: [33668 33670 33708 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName module))} {<Id.Lit_Equals '='>} 
                                  {<no>}
                                )
                                (C {<func_fatal_help>} 
                                  {
                                    (DQ <'libtool library '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName output) <'\' must begin with '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) <'lib\''>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName need_lib_prefix))} 
                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                            )
                                          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
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [33777]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'shared_ext='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'libname='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                  ]
                                  spids: [33742 33756]
                                )
                              ]
                              else_action: [
                                (C {<func_stripname>} {(SQ )} {(SQ <.la>)} 
                                  {(DQ ($ Id.VSub_DollarName outputname))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libname='>
                                          name: libname
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                      spids: [33814]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [33711 33712 33821 -1]
                        )
                      ]
                      redirects: []
                    )
                    (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>} 
                                              {(DQ ($ Id.VSub_DollarName deplibs_check_method))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<pass_all>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ <'cannot build libtool library '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ Id.VSub_DollarName output) <'\' from non-libtool objects on this host:'> ($ Id.VSub_DollarName objs)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [33842 33856]
                                )
                              ]
                              else_action: [
                                (C {($ Id.VSub_DollarName 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!'>
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                            ($ Id.VSub_DollarName objs)
                                          )
                                        }
                                      spids: [33894]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [33828 33839]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ ($ Id.VSub_DollarName dlself))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                        )
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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>} {(DQ ($ Id.VSub_Pound '#'))} {<-gt>} {<1>})
                        (C {<func_warning>} 
                          {
                            (DQ <'ignoring multiple '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                                ch: '`'
                              ) <'-rpath\'s for a libtool library'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'install_libdir='>
                              name: install_libdir
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1))}
                          spids: [33967]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [33974]
                        )
                      ]
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'oldlibs='>
                                              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: [34023]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                                              name: build_libtool_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<convenience>}
                                          spids: [34035]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'build_old_libs='>
                                              name: build_old_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [34039]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [33991 34004]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))})
                                (C {<func_warning>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) <'-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 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) <'-release\' is ignored for convenience libraries'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [33977 33988]
                        )
                      ]
                      else_action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_ifs='>
                                      name: save_ifs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                  spids: [34096]
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(SQ <':'>)}
                              spids: [34102]
                            )
                          ]
                          redirects: []
                        )
                        (C {<set>} {<dummy>} {($ Id.VSub_DollarName vinfo)} {<0>} {<0>} {<0>})
                        (C {<shift>})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                              spids: [34124]
                            )
                          ]
                          redirects: []
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number 7))})
                            (C {<func_fatal_help>} 
                              {
                                (DQ <'too many parameters to '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-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
                                          left: <Id.Lit_VarLike 'number_major='>
                                          name: number_major
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 1))}
                                      spids: [34177]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'number_minor='>
                                          name: number_minor
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 2))}
                                      spids: [34183]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'number_revision='>
                                          name: number_revision
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 3))}
                                      spids: [34189]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName version_type)}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<darwin>} {<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
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [34251]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_minor))}
                                              spids: [34255]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_revision))}
                                              spids: [34261]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [34230 34239 34267 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<freebsd-aout>} {<freebsd-elf>} {<sunos>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_major))}
                                              spids: [34278]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_minor))}
                                              spids: [34284]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ <0>)}
                                              spids: [34290]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [34270 34275 34296 -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
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [34314]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_minor))}
                                              spids: [34318]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName number_minor))}
                                              spids: [34324]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'lt_irix_increment='>
                                                  name: lt_irix_increment
                                                )
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                              spids: [34330]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [34299 34302 34334 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (C {<func_fatal_configuration>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName modename) 
                                              <': unknown library version type '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_DollarName version_type) 
                                              <'\''>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [34337 34338 34352 -1]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [34173 34174 34358 -1]
                            )
                            (case_arm
                              pat_list: [{<no>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'current='>
                                          name: current
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 1))}
                                      spids: [34365]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'revision='>
                                          name: revision
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 2))}
                                      spids: [34371]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'age='> name:age)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number 3))}
                                      spids: [34377]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [34361 34362 34383 -1]
                            )
                          ]
                          redirects: []
                        )
                        (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 ']'>
                                }
                              ]
                              action: []
                              spids: [34401 34452 34454 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'CURRENT '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName current) <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName vinfo) <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [34457 34458 34480 -1]
                            )
                          ]
                          redirects: []
                        )
                        (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 ']'>
                                }
                              ]
                              action: []
                              spids: [34494 34545 34547 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'REVISION '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName revision) <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName vinfo) <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [34550 34551 34573 -1]
                            )
                          ]
                          redirects: []
                        )
                        (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 ']'>
                                }
                              ]
                              action: []
                              spids: [34587 34638 34640 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'AGE '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName age) <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName vinfo) <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [34643 34644 34666 -1]
                            )
                          ]
                          redirects: []
                        )
                        (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 '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName age) <'\' is greater than the current interface number '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName current) <'\''>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName vinfo) <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [34673 34688]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [34721]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  name: versuffix
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [34724]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'verstring='>
                                  name: verstring
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [34727]
                            )
                          ]
                          redirects: []
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName version_type)}
                          arms: [
                            (case_arm
                              pat_list: [{<none>}]
                              action: []
                              spids: [34737 34738 34740 -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
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                      spids: [34765]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName major) <.> 
                                            ($ Id.VSub_DollarName age) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [34770]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<func_arith>} {($ Id.VSub_DollarName current)} {<Id.Lit_Other '+'>} 
                                  {<1>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'minor_current='>
                                          name: minor_current
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                      spids: [34793]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'xlcverstring='>
                                          name: xlcverstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ (${ Id.VSub_Name wl) <'-compatibility_version '> 
                                            (${ Id.VSub_Name wl) ($ Id.VSub_DollarName minor_current) <' '> (${ Id.VSub_Name wl) <'-current_version '> 
                                            (${ Id.VSub_Name wl) ($ Id.VSub_DollarName minor_current) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [34797]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          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: [34821]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [34744 34745 34832 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-aout>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [34840]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'versuffix='>
                                              name: versuffix
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <.> ($ Id.VSub_DollarName current) <.> 
                                                ($ Id.VSub_DollarName revision)
                                              )
                                            }
                                          spids: [34847]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              spids: [34836 34837 34857 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-elf>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [34865]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [34872]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [34861 34862 34879 -1]
                            )
                            (case_arm
                              pat_list: [{<irix>} {<nonstopux>}]
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName lt_irix_increment))} {<Id.Lit_Equals '='>} {(DQ <Xno>)}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName current)} {<->} 
                                          {($ Id.VSub_DollarName age)}
                                        )
                                      ]
                                      spids: [34891 34907]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_arith>} {($ Id.VSub_DollarName current)} {<->} 
                                      {($ Id.VSub_DollarName age)} {<Id.Lit_Other '+'>} {<1>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                      spids: [34938]
                                    )
                                  ]
                                  redirects: []
                                )
                                (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
                                                  left: <Id.Lit_VarLike 'verstring_prefix='>
                                                  name: verstring_prefix
                                                )
                                              op: assign_op.Equal
                                              rhs: {<nonstopux>}
                                              spids: [34953]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [34950 34951 34956 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring_prefix='>
                                                  name: verstring_prefix
                                                )
                                              op: assign_op.Equal
                                              rhs: {<sgi>}
                                              spids: [34962]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [34959 34960 34965 -1]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName verstring_prefix) 
                                            ($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [34971]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'loop='> name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName revision)}
                                      spids: [34985]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName loop))} {<-ne>} {<0>})
                                          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
                                                  left: <Id.Lit_VarLike 'iface='>
                                                  name: iface
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [35014]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName loop)} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'loop='>
                                                  name: loop
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [35027]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName verstring_prefix) 
                                                    ($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName iface) <':'> ($ Id.VSub_DollarName verstring)
                                                  )
                                                }
                                              spids: [35031]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName major)}
                                      spids: [35050]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName major) <.> 
                                            ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [35055]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [34883 34888 35063 -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
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                      spids: [35080]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName major) <.> 
                                            ($ Id.VSub_DollarName age) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [35085]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35067 35068 35095 -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
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                      spids: [35112]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <.> ($ Id.VSub_DollarName current) <.> 
                                            ($ Id.VSub_DollarName age) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [35117]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName current) <.> 
                                            ($ Id.VSub_DollarName age) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [35128]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'loop='> name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName age)}
                                      spids: [35143]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName loop))} {<-ne>} {<0>})
                                          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
                                                  left: <Id.Lit_VarLike 'iface='>
                                                  name: iface
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [35172]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName loop)} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'loop='>
                                                  name: loop
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                              spids: [35185]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName verstring) <':'> 
                                                    (${ Id.VSub_Name iface) <.0>
                                                  )
                                                }
                                              spids: [35189]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName verstring) <':'> 
                                            (${ Id.VSub_Name current) <.0>
                                          )
                                        }
                                      spids: [35208]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35099 35100 35219 -1]
                            )
                            (case_arm
                              pat_list: [{<qnx>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [35227]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [35234]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35223 35224 35241 -1]
                            )
                            (case_arm
                              pat_list: [{<sunos>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName current))}
                                      spids: [35249]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <.> ($ Id.VSub_DollarName current) <.> 
                                            ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                      spids: [35256]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35245 35246 35265 -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
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                      spids: [35290]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <-> ($ Id.VSub_DollarName major))}
                                      spids: [35294]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35269 35270 35301 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_fatal_configuration>} 
                                  {
                                    (DQ <'unknown library version type '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName version_type) <'\''>
                                    )
                                  }
                                )
                              ]
                              spids: [35305 35306 35319 -1]
                            )
                          ]
                          redirects: []
                        )
                        (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
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [35354]
                                    )
                                  ]
                                  redirects: []
                                )
                                (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
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [35376]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [35364 35365 35379 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ <0.0>)}
                                              spids: [35386]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [35382 35383 35392 -1]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName need_version))} 
                                                  {<Id.Lit_Equals '='>} {<no>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'versuffix='>
                                                  name: versuffix
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [35414]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [35398 35411]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'versuffix='>
                                              name: versuffix
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <.0.0>)}
                                          spids: [35420]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35330 35351]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName avoid_version))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName need_version))} 
                                              {<Id.Lit_Equals '='>} {<no>}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [35465]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [35468]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ )}
                                      spids: [35471]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [35437 35462]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName allow_undefined))} 
                                          {<Id.Lit_Equals '='>} {<yes>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} 
                                                  {(DQ ($ Id.VSub_DollarName allow_undefined_flag))} {<Id.Lit_Equals '='>} {<unsupported>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<func_warning>} 
                                          {
                                            (DQ <'undefined symbols not allowed in '> 
                                              ($ Id.VSub_DollarName host) <' shared libraries'>
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                  name: build_libtool_libs
                                                )
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                              spids: [35525]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'build_old_libs='>
                                                  name: build_old_libs
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [35529]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [35500 35513]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              spids: [35484 35497]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'allow_undefined_flag='>
                                      name: allow_undefined_flag
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName no_undefined_flag))}
                                  spids: [35543]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_generate_dlsyms>} {(DQ ($ Id.VSub_DollarName libname))} 
                      {(DQ ($ Id.VSub_DollarName libname))} {(DQ <yes>)}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                ($ Id.VSub_DollarName symfileobj)
                              )
                            }
                          spids: [35572]
                        )
                      ]
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [35595]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<relink>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'removelist='>
                                      name: removelist
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [35624]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tempremovelist='>
                                      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) <'/*'>)}
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [35627]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [p]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName tempremovelist)}]
                                )
                              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>}
                                          ]
                                          action: []
                                          spids: [35659 35667 35670 -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_Name libname) (${ Id.VSub_Name release) <.> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <X> 
                                                                  ($ Id.VSub_DollarName 
precious_files_regex
                                                                  )
                                                                )
                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X>)}
                                                            )
                                                          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>}
                                                                        )
                                                                      ]
                                                                      more_env: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  negated: F
                                                                  stderr_indices: []
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [35720 35745]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [35700 35717]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'removelist='>
                                                      name: removelist
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName removelist) <' '> 
                                                        ($ Id.VSub_DollarName p)
                                                      )
                                                    }
                                                  spids: [35757]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [35673 35697 35765 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: []
                                          spids: [35768 35769 35771 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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 '\\$'>
                                        ch: '$'
                                      ) <removelist>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [35599 35613]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                                          {<Id.Lit_Equals '='>} {<yes>}
                                        )
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<convenience>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldlibs='>
                                      name: oldlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName oldlibs) <' '> 
                                        ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                      )
                                    }
                                  spids: [35842]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      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 <X> ($ Id.VSub_DollarName libobjs))}
                                              )
                                              (C {($ Id.VSub_DollarName SP2NL)})
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(SQ <'/\\.'>) (${ Id.VSub_Name libext) (SQ <'$/d'>)} {<-e>} {(DQ ($ Id.VSub_DollarName lo2o))}
                                              )
                                              (C {($ Id.VSub_DollarName NL2SP)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [35859]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [35812 35839]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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
                                      left: <Id.Lit_VarLike 'temp_xrpath='>
                                      name: temp_xrpath
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [35955]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [libdir]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName xrpath)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'temp_xrpath='>
                                              name: temp_xrpath
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName temp_xrpath) <' -R'> 
                                                ($ Id.VSub_DollarName libdir)
                                              )
                                            }
                                          spids: [35970]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [35988 35995 35997 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_rpath='>
                                                      name: finalize_rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName finalize_rpath) <' '> 
                                                        ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [36003]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [36000 36001 36010 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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 hardcode_into_libs))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              name: dependency_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName temp_xrpath) <' '> 
                                                ($ Id.VSub_DollarName dependency_libs)
                                              )
                                            }
                                          spids: [36048]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36019 36045]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [35937 35948]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_dlfiles='>
                              name: old_dlfiles
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName dlfiles))}
                          spids: [36067]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [36073]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [lib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName old_dlfiles)}])
                      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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [36101 36108 36110 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlfiles='>
                                              name: dlfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName dlfiles) <' '> 
                                                ($ Id.VSub_DollarName lib)
                                              )
                                            }
                                          spids: [36116]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36113 36114 36123 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_dlprefiles='>
                              name: old_dlprefiles
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName dlprefiles))}
                          spids: [36137]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [36143]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [lib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName old_dlprefiles)}])
                      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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [36168 36175 36177 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlprefiles='>
                                              name: dlprefiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName dlprefiles) <' '> 
                                                ($ Id.VSub_DollarName lib)
                                              )
                                            }
                                          spids: [36183]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36180 36181 36190 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  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 '*'>}
                                          ]
                                          action: []
                                          spids: [36237 36280 36287 -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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplibs) 
                                                        <' System.ltframework'>
                                                      )
                                                    }
                                                  spids: [36312]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [36290 36305 36319 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-netbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [36322 36327 36334 -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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [36337 36358 36365 -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: []
                                          spids: [36368 36381 36388 -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: []
                                          spids: [36391 36420 36427 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
build_libtool_need_lc
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {(DQ <yes>)}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplibs) 
                                                                <' -lc'>
                                                              )
                                                            }
                                                          spids: [36456]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [36438 36453]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [36430 36431 36466 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36216 36227]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'name_save='>
                                      name: name_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName name)}
                                  spids: [36480]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'libname_save='>
                                      name: libname_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libname)}
                                  spids: [36484]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'release_save='>
                                      name: release_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName release)}
                                  spids: [36488]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix_save='>
                                      name: versuffix_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName versuffix)}
                                  spids: [36492]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'major_save='>
                                      name: major_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName major)}
                                  spids: [36496]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'release='>
                                      name: release
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [36512]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      name: versuffix
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [36517]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [36522]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      name: newdeplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [36527]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'droppeddeps='>
                                      name: droppeddeps
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [36530]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName deplibs)}
                                          spids: [36565]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36541 36542 36569 -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: 36612
                                              stdin_parts: [<'\t  int main() { return 0; }\n'>]
                                            )
                                        )
                                      ]
                                      more_env: []
                                      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
                                                      left: <Id.Lit_VarLike 'ldd_output='>
                                                      name: ldd_output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: (C {<ldd>} {<conftest>})
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  spids: [36641]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName deplibs)}]
                                                )
                                              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
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_stripname_result
                                                                      )
                                                                    }
                                                                  spids: [36687]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} 
                                                                              {
                                                                                (DQ <X> 
                                                                                  ($ 
Id.VSub_DollarName allow_libtool_libs_with_static_runtimes
                                                                                  )
                                                                                )
                                                                              } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                                            )
                                                                          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: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'newdeplibs='
                                                                                        >
                                                                                      name: 
newdeplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName newdeplibs
                                                                                        ) <' '> ($ Id.VSub_DollarName i)
                                                                                      )
                                                                                    }
                                                                                  spids: [36734]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {(DQ )}
                                                                                  spids: [36742]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [36724 36731 36747 -1]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [36691 36708]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                            (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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'libname='
                                                                                >
                                                                              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 '\\$'
                                                                                            >
                                                                                          ch: '$'
                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                        ($ 
Id.VSub_DollarName libname_spec
                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                      )
                                                                                    }
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                          spids: [36771]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_matches='
                                                                                >
                                                                              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 '\\$'
                                                                                            >
                                                                                          ch: '$'
                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                        ($ 
Id.VSub_DollarName library_names_spec
                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                      )
                                                                                    }
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                          spids: [36793]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_match='
                                                                                >
                                                                              name: deplib_match
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {($ Id.VSub_Number 1)}
                                                                          spids: [36825]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (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)
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                          right: 
                                                                                            <
Id.Backtick_Right '`'
                                                                                            >
                                                                                        )
                                                                                      } {<-ne>} {<0>}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'newdeplibs='
                                                                                        >
                                                                                      name: 
newdeplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName newdeplibs
                                                                                        ) <' '> ($ Id.VSub_DollarName i)
                                                                                      )
                                                                                    }
                                                                                  spids: [36859]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [36829 36856]
                                                                        )
                                                                      ]
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'droppeddeps='
                                                                                    >
                                                                                  name: droppeddeps
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<yes>}
                                                                              spids: [36870]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          }
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName i) <.>)}
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** I have the capability to make that library automatically link in when'>)}
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** you link to this library.  But I can only do this if you have a'>)}
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** shared version of the library, which I believe you do not have'>)}
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** because a test_compile did reveal that the linker did not use it for'>)}
                                                                        )
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          } {(DQ <'*** its dynamic dependency list that programs get resolved with at runtime.'>)}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [36756 36768]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [36670 36672 36927 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdeplibs='
                                                                        >
                                                                      name: newdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdeplibs
                                                                        ) <' '> ($ Id.VSub_DollarName i)
                                                                      )
                                                                    }
                                                                  spids: [36934]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [36930 36931 36942 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [36623 36638]
                                        )
                                      ]
                                      else_action: [
                                        (command.ForEach
                                          iter_names: [i]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName deplibs)}]
                                            )
                                          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
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  name: name
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_stripname_result
                                                                  )
                                                                }
                                                              spids: [36998]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (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
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'ldd_output='
                                                                            >
                                                                          name: ldd_output
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (command_sub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (C {<ldd>} {<conftest>})
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                      spids: [37029]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: 
                                                                        (condition.Shell
                                                                          commands: [
                                                                            (command.Sentence
                                                                              child: 
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (DQ <X> 
                                                                                      ($ 
Id.VSub_DollarName allow_libtool_libs_with_static_runtimes
                                                                                      )
                                                                                    )
                                                                                  } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                                                )
                                                                              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: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'newdeplibs='
                                                                                            >
                                                                                          name: 
newdeplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName newdeplibs
                                                                                            ) <' '> ($ Id.VSub_DollarName i)
                                                                                          )
                                                                                        }
                                                                                      spids: [37082]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'i='
                                                                                            >
                                                                                          name: i
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: {(DQ )}
                                                                                      spids: [37090]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              spids: [
37072
37079
37095
-1
                                                                              ]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      spids: [37039 37056]
                                                                    )
                                                                  ]
                                                                  else_action: []
                                                                  redirects: []
                                                                )
                                                                (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
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'libname='
                                                                                    >
                                                                                  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 '\\$'
                                                                                                >
                                                                                              ch: 
'$'
                                                                                            ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                            ($ 
Id.VSub_DollarName libname_spec
                                                                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                          )
                                                                                        }
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              spids: [37119]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'deplib_matches='
                                                                                    >
                                                                                  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 '\\$'
                                                                                                >
                                                                                              ch: 
'$'
                                                                                            ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                            ($ 
Id.VSub_DollarName library_names_spec
                                                                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                          )
                                                                                        }
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              spids: [37141]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (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
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'deplib_match='
                                                                                    >
                                                                                  name: deplib_match
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  ($ Id.VSub_Number 1)
                                                                                }
                                                                              spids: [37173]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (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)
                                                                                                    )
                                                                                                  }
                                                                                                )
                                                                                              right: 
                                                                                                <
Id.Backtick_Right '`'
                                                                                                >
                                                                                            )
                                                                                          } {<-ne>} {<0>}
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'newdeplibs='
                                                                                            >
                                                                                          name: 
newdeplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName newdeplibs
                                                                                            ) <' '> ($ Id.VSub_DollarName i)
                                                                                          )
                                                                                        }
                                                                                      spids: [37207]
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              spids: [37177 37204]
                                                                            )
                                                                          ]
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'droppeddeps='
                                                                                        >
                                                                                      name: 
droppeddeps
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<yes>}
                                                                                  spids: [37218]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              }
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName i) <.>)}
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** I have the capability to make that library automatically link in when'>)}
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** you link to this library.  But I can only do this if you have a'>)}
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** shared version of the library, which you do not appear to have'>)}
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** because a test_compile did reveal that the linker did not use this one'>)}
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName ECHO
                                                                                )
                                                                              } {(DQ <'*** as a dynamic dependency that programs can get resolved with at runtime.'>)}
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      spids: [37104 37116]
                                                                    )
                                                                  ]
                                                                  else_action: []
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [37011 37026]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [37278]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** make it link in!  You will probably need to install it or some'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** library that it depends on before this library will be fully'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** functional.  Installing it before continuing would be even better.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [36981 36983 37318 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'newdeplibs='>
                                                                  name: newdeplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName newdeplibs) <' '> ($ Id.VSub_DollarName i)
                                                                  )
                                                                }
                                                              spids: [37325]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [37321 37322 37333 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [36572 36573 37345 -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
                                              left: <Id.Lit_VarLike 'file_magic_regex='>
                                              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 '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [37363]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [a_deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName deplibs)}]
                                        )
                                      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
                                                              left: <Id.Lit_VarLike 'name='>
                                                              name: name
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_stripname_result
                                                              )
                                                            }
                                                          spids: [37426]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ <X> 
                                                                          ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                                    )
                                                                  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: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'newdeplibs='
                                                                                >
                                                                              name: newdeplibs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName newdeplibs
                                                                                ) <' '> ($ Id.VSub_DollarName a_deplib)
                                                                              )
                                                                            }
                                                                          spids: [37473]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'a_deplib='
                                                                                >
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {(DQ )}
                                                                          spids: [37481]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [37463 37470 37486 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [37430 37447]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libname='>
                                                                      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 '\\$'
                                                                                    >
                                                                                  ch: '$'
                                                                                ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                ($ 
Id.VSub_DollarName libname_spec
                                                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                              )
                                                                            }
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  spids: [37510]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              iter_names: [i]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
sys_lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
shlib_search_path
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potential_libs='
                                                                                >
                                                                              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'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    more_env: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                          spids: [37548]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ForEach
                                                                      iter_names: [potent_lib]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
potential_libs
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      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'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  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'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                              stderr_indices: []
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [37583 37609]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                        >
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName potent_lib
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [37638]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (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'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          more_env: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  children: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'potliblink='
                                                                                                >
                                                                                              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_Name SED
                                                                                                          )
                                                                                                        } {(SQ <'s/.* -> //'>)}
                                                                                                      )
                                                                                                    ]
                                                                                                    negated: 
F
                                                                                                    stderr_indices: []
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                          spids: [
37661
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      to_match: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName potliblink
                                                                                          )
                                                                                        }
                                                                                      arms: [
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_LBracket '['
                                                                                              > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <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 '\\\\'
                                                                                                  >
                                                                                                ch: 
'\\'
                                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                                        >
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName potliblink
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
37709
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          spids: [
37690
37707
37713
-1
                                                                                          ]
                                                                                        )
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_Star '*'
                                                                                              >
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                                        >
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName ECHO
                                                                                                                  )
                                                                                                                } {(DQ <X> ($ Id.VSub_DollarName potlib))}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName Xsed
                                                                                                                  )
                                                                                                                } {<-e>} {(SQ <'s,[^/]*$,,'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                            stderr_indices: []
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      ) (DQ ($ Id.VSub_DollarName potliblink))
                                                                                                    }
                                                                                                  spids: [
37719
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          spids: [
37716
37717
37743
-1
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                            (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 '\\"'
                                                                                                          >
                                                                                                        ch: 
'"'
                                                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <potlib> 
                                                                                                      (word_part.EscapedLiteral
                                                                                                        token: 
                                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                                          >
                                                                                                        ch: 
'"'
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  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'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                              stderr_indices: []
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'newdeplibs='
                                                                                                >
                                                                                              name: 
newdeplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName newdeplibs
                                                                                                ) <' '> ($ Id.VSub_DollarName a_deplib)
                                                                                              )
                                                                                            }
                                                                                          spids: [
37792
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'a_deplib='
                                                                                                >
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {(DQ )}
                                                                                          spids: [
37800
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [37752 37789]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [37495 37507]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [37837]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)})
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName a_deplib) <.>
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName 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: [37881 37893]
                                                                )
                                                              ]
                                                              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)
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [37822 37834]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [37409 37411 37931 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                                              name: newdeplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName newdeplibs) 
                                                                <' '> ($ Id.VSub_DollarName a_deplib)
                                                              )
                                                            }
                                                          spids: [37942]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [37934 37935 37950 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [37348 37350 37962 -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
                                              left: <Id.Lit_VarLike 'match_pattern_regex='>
                                              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 '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [37980]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [a_deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName deplibs)}]
                                        )
                                      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
                                                              left: <Id.Lit_VarLike 'name='>
                                                              name: name
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_stripname_result
                                                              )
                                                            }
                                                          spids: [38043]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ <X> 
                                                                          ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                                    )
                                                                  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: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'newdeplibs='
                                                                                >
                                                                              name: newdeplibs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName newdeplibs
                                                                                ) <' '> ($ Id.VSub_DollarName a_deplib)
                                                                              )
                                                                            }
                                                                          spids: [38090]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'a_deplib='
                                                                                >
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {(DQ )}
                                                                          spids: [38098]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [38080 38087 38103 -1]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [38047 38064]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libname='>
                                                                      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 '\\$'
                                                                                    >
                                                                                  ch: '$'
                                                                                ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                ($ 
Id.VSub_DollarName libname_spec
                                                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                              )
                                                                            }
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  spids: [38127]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              iter_names: [i]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
sys_lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
shlib_search_path
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potential_libs='
                                                                                >
                                                                              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'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    more_env: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                          spids: [38165]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ForEach
                                                                      iter_names: [potent_lib]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
potential_libs
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                        >
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName potent_lib
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [38196]
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (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 '\\$'
                                                                                                            >
                                                                                                          ch: 
'$'
                                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                                                                                                        ($ 
Id.VSub_DollarName potent_lib
                                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (C 
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName Xsed
                                                                                                    )
                                                                                                  } {<-e>} {<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'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  more_env: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              negated: 
F
                                                                                              stderr_indices: []
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'newdeplibs='
                                                                                                >
                                                                                              name: 
newdeplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName newdeplibs
                                                                                                ) <' '> ($ Id.VSub_DollarName a_deplib)
                                                                                              )
                                                                                            }
                                                                                          spids: [
38247
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'a_deplib='
                                                                                                >
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {(DQ )}
                                                                                          spids: [
38255
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [38205 38244]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [38112 38124]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (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
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [38292]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)})
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName a_deplib) <.>
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName ECHO)} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {($ Id.VSub_DollarName 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: [38336 38348]
                                                                )
                                                              ]
                                                              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)
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [38277 38289]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [38026 38028 38386 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                                              name: newdeplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName newdeplibs) 
                                                                <' '> ($ Id.VSub_DollarName a_deplib)
                                                              )
                                                            }
                                                          spids: [38397]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [38389 38390 38405 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [37965 37967 38417 -1]
                                )
                                (case_arm
                                  pat_list: [{<none>} {<unknown>} {<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [38432]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                              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 <'X '> ($ Id.VSub_DollarName deplibs))}
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {(SQ <'s/ -lc$//'>)} {<-e>} {(SQ <'s/ -[LR][^ ]*//g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [38437]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {
                                                        (DQ <X> 
                                                          ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                          )
                                                        )
                                                      } {<Id.Lit_Equals '='>} {(DQ <Xyes>)}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {($ Id.VSub_DollarName predeps)}
                                                    {($ Id.VSub_DollarName postdeps)}
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                                              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 <'X '> 
                                                                            ($ Id.VSub_DollarName 
tmp_deplibs
                                                                            )
                                                                          )
                                                                        }
                                                                      )
                                                                      (C {($ Id.VSub_DollarName Xsed)} 
                                                                        {<-e>} {(DQ <'s,'> ($ Id.VSub_DollarName i) <',,'>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                    stderr_indices: []
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                          spids: [38510]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [38471 38488]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {($ Id.VSub_DollarName ECHO)} 
                                                          {
                                                            (DQ <'X '> 
                                                              ($ Id.VSub_DollarName tmp_deplibs)
                                                            )
                                                          }
                                                        )
                                                        (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                          {(SQ <'s/[\t ]//g'>)}
                                                        )
                                                        (command.Simple
                                                          words: [{($ Id.VSub_DollarName GREP)} {<.>}]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<'/dev/null'>}
                                                            )
                                                          ]
                                                          more_env: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      negated: F
                                                      stderr_indices: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {($ Id.VSub_DollarName ECHO)})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <X> 
                                                                  ($ Id.VSub_DollarName 
deplibs_check_method
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {(DQ <Xnone>)}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ 
                                                          <
'*** Warning: inter-library dependencies are not supported in this platform.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [38577 38593]
                                                )
                                              ]
                                              else_action: [
                                                (C {($ Id.VSub_DollarName ECHO)} 
                                                  {
                                                    (DQ 
                                                      <
'*** Warning: inter-library dependencies are not known to be supported.'
                                                      >
                                                    )
                                                  }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ 
                                                  <
'*** All declared inter-library dependencies are being dropped.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'droppeddeps='>
                                                      name: droppeddeps
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [38623]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38541 38571]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [38420 38429 38630 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      name: versuffix
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName versuffix_save)}
                                  spids: [38636]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName major_save)}
                                  spids: [38640]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'release='>
                                      name: release
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName release_save)}
                                  spids: [38644]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'libname='>
                                      name: libname
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libname_save)}
                                  spids: [38648]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName name_save)}
                                  spids: [38652]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName ECHO)} 
                                                        {
                                                          (DQ <'X '> ($ Id.VSub_DollarName newdeplibs))
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {(SQ <'s/ -lc / System.ltframework /'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [38686]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [38664 38679 38709 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName droppeddeps))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName module))} 
                                                      {<Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {($ Id.VSub_DollarName ECHO)})
                                            (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)} 
                                              {
                                                (DQ 
                                                  <
'*** a static module, that should work as long as the dlopening'
                                                  >
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName 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 {($ Id.VSub_DollarName ECHO)})
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ 
                                                          <
'*** However, this would only work if libtool was able to extract symbol'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ <'*** lists from a program, using '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                            ch: '`'
                                                          ) <'nm\' or equivalent, but libtool could'>
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ 
                                                          <
'*** not find such a program.  So, this module is probably useless.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {($ Id.VSub_DollarName ECHO)} 
                                                      {
                                                        (DQ <'*** '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                            ch: '`'
                                                          ) <'nm\' from GNU binutils and a full rebuild may help.'>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [38781 38792]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
build_old_libs
                                                                  )
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<no>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'oldlibs='>
                                                              name: oldlibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                                              )
                                                            }
                                                          spids: [38849]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<module>}
                                                          spids: [38859]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'build_old_libs='>
                                                              name: build_old_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [38863]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [38833 38846]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          name: build_libtool_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                      spids: [38870]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38732 38745]
                                        )
                                      ]
                                      else_action: [
                                        (C {($ Id.VSub_DollarName ECHO)} 
                                          {
                                            (DQ 
                                              <
'*** The inter-library dependencies that have been dropped here will be'
                                              >
                                            )
                                          }
                                        )
                                        (C {($ Id.VSub_DollarName ECHO)} 
                                          {
                                            (DQ 
                                              <
'*** automatically added whenever a program is linked with this library'
                                              >
                                            )
                                          }
                                        )
                                        (C {($ Id.VSub_DollarName ECHO)} 
                                          {(DQ <'*** or is declared to -dlopen it.'>)}
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName allow_undefined)
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {($ Id.VSub_DollarName ECHO)})
                                                (C {($ Id.VSub_DollarName ECHO)} 
                                                  {
                                                    (DQ 
                                                      <
'*** Since this library must not contain undefined symbols,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {($ Id.VSub_DollarName ECHO)} 
                                                  {
                                                    (DQ 
                                                      <
'*** because either the platform does not support them or'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {($ Id.VSub_DollarName ECHO)} 
                                                  {
                                                    (DQ 
                                                      <
'*** it was explicitly requested with -no-undefined,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {($ Id.VSub_DollarName 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>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
build_old_libs
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<no>}
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'oldlibs='>
                                                                  name: oldlibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    ) <'/'> ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                                                  )
                                                                }
                                                              spids: [38965]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_libtool_libs='
                                                                    >
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<module>}
                                                              spids: [38975]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_old_libs='
                                                                    >
                                                                  name: build_old_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<yes>}
                                                              spids: [38979]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [38949 38962]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [38986]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [38902 38915]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [38716 38729]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName newdeplibs)}
                                  spids: [39006]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [36200 36213]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      name: newdeplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                {(DQ <'X '> ($ Id.VSub_DollarName newdeplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [39032]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                                      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 <'X '> 
                                                    ($ Id.VSub_DollarName new_inherited_linker_flags)
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [39061]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                {(DQ <'X '> ($ Id.VSub_DollarName deplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [39090]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [39024 39029 39119 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_libs='> name:new_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [39134]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [path]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName notinst_path)}])
                      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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [39160 39169 39171 -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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'new_libs='>
                                                      name: new_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName new_libs) <' -L'> 
                                                        ($ Id.VSub_DollarName path) <'/'> ($ Id.VSub_DollarName objdir)
                                                      )
                                                    }
                                                  spids: [39201]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [39189 39198 39210 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [39174 39175 39216 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                      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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [39260 39267 39269 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'new_libs='>
                                                      name: new_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName new_libs) <' '> 
                                                        ($ Id.VSub_DollarName deplib)
                                                      )
                                                    }
                                                  spids: [39275]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [39272 39273 39282 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [39244 39246 39288 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'new_libs='>
                                              name: new_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_libs) <' '> 
                                                ($ Id.VSub_DollarName deplib)
                                              )
                                            }
                                          spids: [39294]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [39291 39292 39301 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName new_libs))}
                          spids: [39310]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'library_names='>
                              name: library_names
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [39321]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_library='>
                              name: old_library
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [39324]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [39327]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName hardcode_into_libs))} 
                                              {<Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                              name: hardcode_libdirs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [39371]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dep_rpath='>
                                              name: dep_rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [39374]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName finalize_rpath))}
                                          spids: [39377]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<relink>}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'rpath='>
                                                  name: rpath
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName compile_rpath) 
                                                    ($ Id.VSub_DollarName rpath)
                                                  )
                                                }
                                              spids: [39396]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_names: [libdir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName rpath)}]
                                        )
                                      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
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                                >
                                                                              name: hardcode_libdirs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName libdir
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [39457]
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [39443 39454]
                                                                )
                                                              ]
                                                              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 '*'>
                                                                        }
                                                                      ]
                                                                      action: []
                                                                      spids: [39479 39486 39489 -1]
                                                                    )
                                                                    (case_arm
                                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                                      action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                                    >
                                                                                  name: 
hardcode_libdirs
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName hardcode_libdirs
                                                                                    ) ($ Id.VSub_DollarName hardcode_libdir_separator) ($ Id.VSub_DollarName libdir)
                                                                                  )
                                                                                }
                                                                              spids: [39496]
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      spids: [39492 39493 39504 -1]
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [39429 39440]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<eval>} 
                                                          {<Id.Lit_VarLike 'flag='> 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'dep_rpath='>
                                                                  name: dep_rpath
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName dep_rpath) <' '> ($ Id.VSub_DollarName flag)
                                                                  )
                                                                }
                                                              spids: [39524]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39415 39426]
                                                )
                                                (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 '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [39559 39566 39568 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'perm_rpath='
                                                                        >
                                                                      name: perm_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
perm_rpath
                                                                        ) <' '> ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  spids: [39574]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [39571 39572 39581 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39535 39546]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName hardcode_libdirs))}
                                                  spids: [39622]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
hardcode_libdir_flag_spec_ld
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'dep_rpath='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec_ld) 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [39628 39639]
                                                )
                                              ]
                                              else_action: [
                                                (C {<eval>} 
                                                  {<Id.Lit_VarLike 'dep_rpath='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    )
                                                  }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [39597 39619]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'rpath='>
                                                      name: rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [39695]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [dir]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName perm_rpath)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rpath='>
                                                              name: rpath
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rpath) 
                                                                ($ Id.VSub_DollarName dir) <':'>
                                                              )
                                                            }
                                                          spids: [39710]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName runpath_var) <'=\''> 
                                                  ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName runpath_var) 
                                                  <'\'; export '> ($ Id.VSub_DollarName runpath_var)
                                                )
                                              }
                                            )
                                          ]
                                          spids: [39667 39688]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dep_rpath) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                              spids: [39747]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39351 39364]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'shlibpath='>
                                      name: shlibpath
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName finalize_shlibpath))}
                                  spids: [39759]
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<relink>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'shlibpath='>
                                          name: shlibpath
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName compile_shlibpath) 
                                            ($ Id.VSub_DollarName shlibpath)
                                          )
                                        }
                                      spids: [39778]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (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 '\\$'> ch:'$') 
                                          ($ Id.VSub_DollarName shlibpath_var) <'\'; export '> ($ Id.VSub_DollarName shlibpath_var)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [39785 39796]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'shared_ext='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                              }
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'library_names='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName library_names_spec) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              }
                            )
                            (C {<set>} {<dummy>} {($ Id.VSub_DollarName library_names)})
                            (C {<shift>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'realname='>
                                      name: realname
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 1))}
                                  spids: [39846]
                                )
                              ]
                              redirects: []
                            )
                            (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 '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName soname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                  ]
                                  spids: [39856 39867]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'soname='>
                                          name: soname
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName realname))}
                                      spids: [39881]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'dlname='>
                                              name: dlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName soname)}
                                          spids: [39904]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [39890 39901]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        ($ Id.VSub_DollarName realname)
                                      )
                                    }
                                  spids: [39912]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'linknames='>
                                      name: linknames
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [39920]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [link]
                              iterable: (for_iter.Args)
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linknames='>
                                              name: linknames
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName linknames) <' '> 
                                                ($ Id.VSub_DollarName link)
                                              )
                                            }
                                          spids: [39931]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName ECHO)} 
                                                    {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                                  )
                                                  (C {($ Id.VSub_DollarName SP2NL)})
                                                  (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                    {(DQ ($ Id.VSub_DollarName lo2o))}
                                                  )
                                                  (C {($ Id.VSub_DollarName NL2SP)})
                                                ]
                                                negated: F
                                                stderr_indices: []
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [39957]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (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
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [40003]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'delfiles='>
                                      name: delfiles
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [40007]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName libname) <.uexp>
                                              )
                                            }
                                          spids: [40052]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'delfiles='>
                                              name: delfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                ($ Id.VSub_DollarName export_symbols)
                                              )
                                            }
                                          spids: [40061]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [40010 40031]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'orig_export_symbols='>
                                      name: orig_export_symbols
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [40073]
                                )
                              ]
                              redirects: []
                            )
                            (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.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {
                                                                (DQ <x> 
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (C {($ Id.VSub_DollarName SED)} 
                                                                        {<1q>} {($ Id.VSub_DollarName export_symbols)}
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                )
                                                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<xEXPORTS>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'orig_export_symbols='
                                                                >
                                                              name: orig_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName export_symbols)
                                                              )
                                                            }
                                                          spids: [40176]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'export_symbols='>
                                                              name: export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word.Empty)
                                                          spids: [40182]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'always_export_symbols='
                                                                >
                                                              name: always_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [40185]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [40126 40149]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [40098 40119]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [40083 40095 40195 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
always_export_symbols
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
export_symbols_regex
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'generating symbol list for '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName libname) <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName libname) <.exp>
                                                      )
                                                    }
                                                  spids: [40256]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName export_symbols_cmds)}
                                                  spids: [40274]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'save_ifs='>
                                                          name: save_ifs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                                      spids: [40278]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <'~'>)}
                                                  spids: [40284]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [cmd]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName cmds)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'IFS='>
                                                              name: IFS
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                                          spids: [40302]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'cmd='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) ($ Id.VSub_DollarName cmd) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                      }
                                                    )
                                                    (C {<func_len>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName cmd))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'len='>
                                                              name: len
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName func_len_result)}
                                                          spids: [40324]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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: [
                                                            (C {<func_show_eval>} 
                                                              {(DQ ($ Id.VSub_DollarName cmd))} {(SQ <'exit $?'>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'skipped_export='
                                                                        >
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                  spids: [40369]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [40328 40355]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_verbose>} 
                                                          {
                                                            (DQ 
                                                              <
'using reloadable object file for export list...'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'skipped_export='
                                                                    >
                                                                  name: skipped_export
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<Id.Lit_Colon ':'>}
                                                              spids: [40387]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                                  spids: [40408]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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>} 
                                                                  {
                                                                    (DQ <X> 
                                                                      ($ Id.VSub_DollarName 
skipped_export
                                                                      )
                                                                    )
                                                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'X:'>)}
                                                                )
                                                              ]
                                                            )
                                                          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: [40414 40441]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [40220 40243]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [40206 40217]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                              name: tmp_export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName export_symbols))}
                                          spids: [40492]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                                  name: tmp_export_symbols
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName orig_export_symbols))}
                                              spids: [40508]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName opt_dry_run)})
                                        (C {<eval>} 
                                          {
                                            (SQ 
                                              <
'$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
                                              >
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40468 40489]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName skipped_export))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'X:'>)}
                                                )
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName orig_export_symbols))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'filter symbol list for '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                            ch: '`'
                                          ) ($ 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>
                                                }
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'delfiles='>
                                              name: delfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                ($ Id.VSub_DollarName export_symbols) <' '> ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.filter>
                                              )
                                            }
                                          spids: [40617]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                                              ($ Id.VSub_DollarName libname) <.def>
                                            }
                                          spids: [40630]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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)}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40529 40556]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      name: tmp_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [40663]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [test_deplib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                              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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [40689 40696 40698 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                                      name: tmp_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName tmp_deplibs) <' '> 
                                                        ($ Id.VSub_DollarName test_deplib)
                                                      )
                                                    }
                                                  spids: [40705]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [40701 40702 40713 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName tmp_deplibs))}
                                  spids: [40722]
                                )
                              ]
                              redirects: []
                            )
                            (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>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
compiler_needs_object
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName libobjs))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'whole_archive_flag_spec='>
                                                      name: whole_archive_flag_spec
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [40789]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [40743 40778]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'save_libobjs='>
                                                      name: save_libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName libobjs)}
                                                  spids: [40809]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'libobjs='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libobjs>
                                              } 
                                              {($ Id.VSub_DollarName whole_archive_flag_spec) 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                )
                                              }
                                            )
                                            (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
                                                          left: <Id.Lit_VarLike 'libobjs='>
                                                          name: libobjs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word.Empty)
                                                      spids: [40839]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40795 40806]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'gentop='>
                                                  name: gentop
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                    (${ Id.VSub_Name outputname) <x>
                                                  )
                                                }
                                              spids: [40845]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'generated='>
                                                  name: generated
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName generated) <' '> 
                                                    ($ Id.VSub_DollarName gentop)
                                                  )
                                                }
                                              spids: [40856]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_extract_archives>} {($ Id.VSub_DollarName gentop)} 
                                          {($ Id.VSub_DollarName convenience)}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  name: libobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                                    ($ Id.VSub_DollarName 
func_extract_archives_result
                                                    )
                                                  )
                                                }
                                              spids: [40872]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (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
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [40895]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [40729 40740]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName thread_safe))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (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 '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName thread_safe_flag_spec) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linker_flags='>
                                              name: linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName linker_flags) <' '> 
                                                ($ Id.VSub_DollarName flag)
                                              )
                                            }
                                          spids: [40939]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [40905 40928]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                              {<Id.Lit_Equals '='>} {<relink>}
                                            )
                                          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: [40955 40968]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName module))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (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 '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName module_expsym_cmds) 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName module_expsym_cmds)}
                                                  spids: [41055]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [41023 41044]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'test_cmds='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName module_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName module_cmds)}
                                              spids: [41070]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [40996 41020]
                                )
                              ]
                              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 '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName archive_expsym_cmds) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName archive_expsym_cmds)}
                                              spids: [41112]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [41080 41101]
                                    )
                                  ]
                                  else_action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'test_cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName archive_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cmds='>
                                              name: cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName archive_cmds)}
                                          spids: [41127]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (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>} 
                                                  {(DQ <X> ($ Id.VSub_DollarName skipped_export))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'X:'>)}
                                                )
                                                (C {<func_len>} 
                                                  {(DQ <' '> ($ Id.VSub_DollarName test_cmds))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'len='>
                                                          name: len
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName func_len_result)}
                                                      spids: [41167]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (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: [41138 41198]
                                )
                              ]
                              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
                                                  left: <Id.Lit_VarLike 'save_libobjs='>
                                                  name: save_libobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName libobjs)}
                                              spids: [41276]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [41252 41273]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_output='>
                                          name: save_output
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName output)}
                                      spids: [41283]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'output_la='>
                                          name: output_la
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName ECHO)} 
                                                    {(DQ <X> ($ Id.VSub_DollarName output))}
                                                  )
                                                  (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                    {(DQ ($ Id.VSub_DollarName basename))}
                                                  )
                                                ]
                                                negated: F
                                                stderr_indices: []
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [41287]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'test_cmds='>
                                          name: test_cmds
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [41319]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                          name: concat_cmds
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [41322]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'objlist='>
                                          name: objlist
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [41325]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'last_robj='>
                                          name: last_robj
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [41328]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [41331]
                                    )
                                  ]
                                  redirects: []
                                )
                                (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>} 
                                                      {(DQ <X> ($ Id.VSub_DollarName skipped_export))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'X:'>)}
                                                    )
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName with_gnu_ld))} {<Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name output_objdir) <'/'> 
                                                  (${ Id.VSub_Name output_la) <.lnkscript>
                                                }
                                              spids: [41378]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating GNU ld script: '> 
                                              ($ Id.VSub_DollarName output)
                                            )
                                          }
                                        )
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName ECHO)} {(SQ <'INPUT ('>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName output)}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                        (command.ForEach
                                          iter_names: [obj]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName save_libobjs)}]
                                            )
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName ECHO)}
                                                    {(DQ ($ Id.VSub_DollarName obj))}
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName output)}
                                                    )
                                                  ]
                                                  more_env: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName ECHO)} {(SQ <')'>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName output)}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'delfiles='>
                                                  name: delfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                    ($ Id.VSub_DollarName output)
                                                  )
                                                }
                                              spids: [41445]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [41336 41375]
                                    )
                                    (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>} 
                                                      {(DQ <X> ($ Id.VSub_DollarName skipped_export))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'X:'>)}
                                                    )
                                                    (C {<test>} 
                                                      {(DQ <X> ($ Id.VSub_DollarName file_list_spec))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<X>}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name output_objdir) <'/'> 
                                                  (${ Id.VSub_Name output_la) <.lnk>
                                                }
                                              spids: [41497]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (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)}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                        (C {<set>} {<x>} {($ Id.VSub_DollarName save_libobjs)})
                                        (C {<shift>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'firstobj='>
                                                  name: firstobj
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [41533]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
compiler_needs_object
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'firstobj='>
                                                          name: firstobj
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_Number 1) <' '>)}
                                                      spids: [41552]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (C {<shift>})
                                              ]
                                              spids: [41536 41549]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                        (command.ForEach
                                          iter_names: [obj]
                                          iterable: (for_iter.Args)
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName ECHO)}
                                                    {(DQ ($ Id.VSub_DollarName obj))}
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName output)}
                                                    )
                                                  ]
                                                  more_env: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'delfiles='>
                                                  name: delfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                    ($ Id.VSub_DollarName output)
                                                  )
                                                }
                                              spids: [41587]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName firstobj) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) ($ Id.VSub_DollarName file_list_spec) ($ Id.VSub_DollarName output) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  )
                                                }
                                              spids: [41595]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [41453 41494]
                                    )
                                  ]
                                  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
                                                      left: <Id.Lit_VarLike 'output='>
                                                      name: output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName output_la) <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName objext)
                                                    }
                                                  spids: [41627]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'test_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName reload_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                              }
                                            )
                                            (C {<func_len>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName test_cmds))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'len0='>
                                                      name: len0
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_len_result)}
                                                  spids: [41655]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'len='>
                                                      name: len
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName len0)}
                                                  spids: [41659]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [obj]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName save_libobjs)}]
                                                )
                                              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
                                                              left: <Id.Lit_VarLike 'len='>
                                                              name: len
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName func_arith_result)
                                                            }
                                                          spids: [41697]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      ops: [Id.Op_DPipe]
                                                                      children: [
                                                                        (C {<test>} 
                                                                          {
                                                                            (DQ <X> 
                                                                              ($ Id.VSub_DollarName 
objlist
                                                                              )
                                                                            )
                                                                          } {<Id.Lit_Equals '='>} {<X>}
                                                                        )
                                                                        (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: [41701 41730]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: 
                                                                (condition.Shell
                                                                  commands: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<test>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName k)
                                                                            )
                                                                          } {<-eq>} {<1>}
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              action: [
                                                                (C {<eval>} 
                                                                  {<Id.Lit_VarLike 'concat_cmds='> 
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\"'>
                                                                      ch: '"'
                                                                    ) ($ Id.VSub_DollarName reload_cmds)
                                                                  } {($ Id.VSub_DollarName objlist)} 
                                                                  {($ Id.VSub_DollarName last_robj) 
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\"'>
                                                                      ch: '"'
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [41754 41768]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                                ($ Id.VSub_DollarName reload_cmds)
                                                              } {($ Id.VSub_DollarName objlist)} 
                                                              {($ Id.VSub_DollarName last_robj) 
                                                                <Id.Lit_TildeLike '~'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <RM>
                                                              } {($ Id.VSub_DollarName last_robj) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'last_robj='>
                                                                  name: last_robj
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName output_la) <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName objext)
                                                                }
                                                              spids: [41821]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (C {<func_arith>} {($ Id.VSub_DollarName k)} 
                                                          {<Id.Lit_Other '+'>} {<1>}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'k='>
                                                                  name: k
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_arith_result
                                                                  )
                                                                }
                                                              spids: [41842]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'output='>
                                                                  name: output
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName output_la) <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName objext)
                                                                }
                                                              spids: [41846]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'objlist='>
                                                                  name: objlist
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_DollarName obj)}
                                                              spids: [41858]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (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
                                                                  left: <Id.Lit_VarLike 'len='>
                                                                  name: len
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_arith_result
                                                                  )
                                                                }
                                                              spids: [41879]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (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
                                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                                          name: concat_cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName concat_cmds) 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [41911]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> <concat_cmds> 
                                                <Id.Lit_RBrace '}'> ($ Id.VSub_DollarName reload_cmds)
                                              } {($ Id.VSub_DollarName objlist)} 
                                              {($ Id.VSub_DollarName last_robj) 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                )
                                              }
                                            )
                                            (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 '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> <concat_cmds> 
                                                        <Id.Lit_RBrace '}'> <Id.Lit_TildeLike '~'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <RM>
                                                      } {($ Id.VSub_DollarName last_robj) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')}
                                                    )
                                                  ]
                                                  spids: [41932 41943]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'delfiles='>
                                                      name: delfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                        ($ Id.VSub_DollarName output)
                                                      )
                                                    }
                                                  spids: [41965]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [41606 41617]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [41977]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C 
                                                      {
                                                        (braced_var_sub
                                                          left: <Id.Left_DollarBrace '${'>
                                                          token: <Id.VSub_Name skipped_export>
                                                          var_name: skipped_export
                                                          suffix_op: 
                                                            (suffix_op.Unary
                                                              op: <Id.VTest_Hyphen _>
                                                              arg_word: {<false>}
                                                            )
                                                          right: <Id.Right_DollarBrace '}'>
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'generating symbol list for '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                    ch: '`'
                                                  ) ($ Id.VSub_DollarName libname) <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName libname) <.exp>
                                                      )
                                                    }
                                                  spids: [42006]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName output)}
                                                  spids: [42024]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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
                                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                                          name: concat_cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName concat_cmds) 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [42042]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'concat_cmds='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                                ($ Id.VSub_DollarName export_symbols_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                              }
                                            )
                                            (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 '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                          ch: '$'
                                                        ) <RM>
                                                      } {($ Id.VSub_DollarName last_robj) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')}
                                                    )
                                                  ]
                                                  spids: [42057 42068]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [41984 41993]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'save_ifs='>
                                                  name: save_ifs
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                              spids: [42116]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'~'>)}
                                          spids: [42122]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [cmd]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName concat_cmds)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                                  spids: [42140]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName opt_silent)})
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (C {<func_quote_for_expand>} 
                                                      {(DQ ($ Id.VSub_DollarName cmd))}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'func_echo '> 
                                                          ($ Id.VSub_DollarName 
func_quote_for_expand_result
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                            (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
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lt_exit='>
                                                              name: lt_exit
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_QMark '?')}
                                                          spids: [42186]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName mode)
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {<relink>}
                                                                    )
                                                                  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))}
                                                                    )
                                                                  ]
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [42195 42208]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Exit exit>
                                                      arg_word: {($ Id.VSub_DollarName lt_exit)}
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                          spids: [42267]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                              left: <Id.Left_DollarBrace '${'>
                                                              token: <Id.VSub_Name skipped_export>
                                                              var_name: skipped_export
                                                              suffix_op: 
                                                                (suffix_op.Unary
                                                                  op: <Id.VTest_Hyphen _>
                                                                  arg_word: {<false>}
                                                                )
                                                              right: <Id.Right_DollarBrace '}'>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  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: [42274 42293]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C 
                                                  {
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name skipped_export>
                                                      var_name: skipped_export
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op: <Id.VTest_Hyphen _>
                                                          arg_word: {<false>}
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  }
                                                )
                                              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 
include_expsyms
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'tmp_export_symbols='>
                                                          name: tmp_export_symbols
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                      spids: [42353]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (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
                                                              left: 
                                                                <Id.Lit_VarLike 
'tmp_export_symbols='
                                                                >
                                                              name: tmp_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
orig_export_symbols
                                                                )
                                                              )
                                                            }
                                                          spids: [42369]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName opt_dry_run)})
                                                    (C {<eval>} 
                                                      {
                                                        (SQ 
                                                          <
'$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [42329 42350]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                        (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 '> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\`'>
                                                        ch: '`'
                                                      ) ($ 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>
                                                            }
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'delfiles='>
                                                          name: delfiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName delfiles) <' '> 
                                                            ($ Id.VSub_DollarName export_symbols) <' '> ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.filter>
                                                          )
                                                        }
                                                      spids: [42462]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'export_symbols='>
                                                          name: export_symbols
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                          ($ Id.VSub_DollarName libname) <.def>
                                                        }
                                                      spids: [42475]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (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)}
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [42390 42401]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      spids: [42317 42326]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName output)}
                                      spids: [42511]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'output='>
                                          name: output
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName save_output)}
                                      spids: [42519]
                                    )
                                  ]
                                  redirects: []
                                )
                                (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 '\\"'>
                                              ch: '"'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libobjs>
                                          } 
                                          {($ Id.VSub_DollarName whole_archive_flag_spec) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          }
                                        )
                                        (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
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [42574]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [42524 42545]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName module))} 
                                                      {<Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                    (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
                                                          left: <Id.Lit_VarLike 'cmds='>
                                                          name: cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName module_expsym_cmds)}
                                                      spids: [42644]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [42620 42641]
                                            )
                                          ]
                                          else_action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName module_cmds)}
                                                  spids: [42651]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [42593 42617]
                                    )
                                  ]
                                  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
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName archive_expsym_cmds)}
                                                  spids: [42685]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [42661 42682]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName archive_cmds)}
                                              spids: [42692]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (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 '\\"'>
                                          ch: '"'
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <cmds> <Id.Lit_TildeLike '~'> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) <RM>
                                      } {($ Id.VSub_DollarName delfiles) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')}
                                    )
                                  ]
                                  spids: [42706 42717]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'gentop='>
                                              name: gentop
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                (${ Id.VSub_Name outputname) <x>
                                              )
                                            }
                                          spids: [42760]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'generated='>
                                              name: generated
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName generated) <' '> 
                                                ($ Id.VSub_DollarName gentop)
                                              )
                                            }
                                          spids: [42771]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_extract_archives>} {($ Id.VSub_DollarName gentop)} 
                                      {($ Id.VSub_DollarName dlprefiles)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libobjs='>
                                              name: libobjs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                                ($ Id.VSub_DollarName func_extract_archives_result)
                                              )
                                            }
                                          spids: [42787]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  name: libobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [42810]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [42746 42757]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName IFS))}
                                      spids: [42817]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'~'>)}
                                  spids: [42823]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [cmd]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName cmds)}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                          spids: [42841]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmd='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName cmd) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName opt_silent)})
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (C {<func_quote_for_expand>} 
                                              {(DQ ($ Id.VSub_DollarName cmd))}
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'func_echo '> 
                                                  ($ Id.VSub_DollarName func_quote_for_expand_result)
                                                )
                                              }
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                    )
                                    (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
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lt_exit='>
                                                      name: lt_exit
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '?')}
                                                  spids: [42895]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} 
                                                              {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<relink>}
                                                            )
                                                          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))}
                                                            )
                                                          ]
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [42904 42917]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Exit exit>
                                              arg_word: {($ Id.VSub_DollarName lt_exit)}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName save_ifs))}
                                  spids: [42976]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                              {<Id.Lit_Equals '='>} {<relink>}
                                            )
                                          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: [43035 43046]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [43021 43032]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                                    )
                                  ]
                                  spids: [42987 43000]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [linkname]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName linknames)}])
                              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: [43088 43104]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (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 module))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName export_dynamic))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlname='>
                                              name: dlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName soname))}
                                          spids: [43161]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [43129 43154]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [39335 39348]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [33653 33654 43173 -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>} {(DQ ($ Id.VSub_DollarName dlself))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-dlopen\' is ignored for objects'>
                                )
                              }
                            )
                          ]
                          spids: [43181 43206]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName deplibs))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                                ch: ' '
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) <'-l\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                  <'-L\' are ignored for objects'>
                                )
                              }
                            )
                          ]
                          spids: [43231 43242 43254 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName rpath))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-rpath\' is ignored for objects'>
                            )
                          }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName xrpath))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-R\' is ignored for objects'>
                            )
                          }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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 '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                        ch: '`'
                                      ) ($ Id.VSub_DollarName output) <'\' from non-libtool objects'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName output)}
                                  spids: [43381]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName libobj))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                  spids: [43392]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [43352 43354 43396 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [43403]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName output))}
                                  spids: [43406]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [43399 43400 43412 -1]
                        )
                      ]
                      redirects: []
                    )
                    (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
                              left: <Id.Lit_VarLike 'reload_conv_objs='>
                              name: reload_conv_objs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [43451]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gentop='> name:gentop)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [43454]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wl='> name:wl)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [43469]
                        )
                      ]
                      redirects: []
                    )
                    (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 '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName whole_archive_flag_spec) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'reload_conv_objs='>
                                              name: reload_conv_objs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName reload_objs) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                                ch: ' '
                                              ) 
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName ECHO)} 
                                                        {
                                                          (DQ <X> 
                                                            ($ Id.VSub_DollarName 
tmp_whole_archive_flags
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                        {(SQ <'s|,| |g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [43509]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [43487 43498]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'gentop='>
                                          name: gentop
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                            (${ Id.VSub_Name obj) <x>
                                          )
                                        }
                                      spids: [43537]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'generated='>
                                          name: generated
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName generated) <' '> 
                                            ($ Id.VSub_DollarName gentop)
                                          )
                                        }
                                      spids: [43548]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName gentop)} 
                                  {($ Id.VSub_DollarName convenience)}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'reload_conv_objs='>
                                          name: reload_conv_objs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName reload_objs) <' '> 
                                            ($ Id.VSub_DollarName func_extract_archives_result)
                                          )
                                        }
                                      spids: [43564]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [43473 43484]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'reload_objs='>
                              name: reload_objs
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName objs) ($ Id.VSub_DollarName old_deplibs) <' '>) 
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName ECHO)} 
                                        {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                      )
                                      (C {($ Id.VSub_DollarName SP2NL)})
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                        {(SQ <'/\\.'>) (${ Id.VSub_Name libext) 
                                          (single_quoted
                                            left: <Id.Left_DollarSingleQuote '$\''>
                                            tokens: [<Id.Char_Literals '/d'>]
                                            right: <Id.Right_SingleQuote '\''>
                                          )
                                        } {<-e>} {(SQ <'/\\.lib$/d'>)} {<-e>} {(DQ ($ Id.VSub_DollarName lo2o))}
                                      )
                                      (C {($ Id.VSub_DollarName NL2SP)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              ) (DQ <' '> ($ Id.VSub_DollarName reload_conv_objs))
                            }
                          spids: [43583]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName obj))}
                          spids: [43649]
                        )
                      ]
                      redirects: []
                    )
                    (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: [43685 43696]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [43671 43682]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                    )
                                  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: [43736 43747]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [43719 43733]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName pic_mode))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<default>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'reload_objs='>
                                      name: reload_objs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                        ($ Id.VSub_DollarName reload_conv_objs)
                                      )
                                    }
                                  spids: [43817]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName libobj))}
                                  spids: [43825]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName reload_cmds))} 
                              {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [43786 43810]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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: [43846 43857]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                    )
                  ]
                  spids: [43177 43178 43876 -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 left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result) <.exe>}
                                  spids: [43910]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [43891 43894 43913 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))})
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-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 (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'-release\' is ignored for programs'>
                            )
                          }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ ($ Id.VSub_DollarName preload))} {<Id.Lit_Equals '='>} {<yes>})
                        (C {<test>} {(DQ ($ Id.VSub_DollarName dlopen_support))} {<Id.Lit_Equals '='>} 
                          {<unknown>}
                        )
                        (C {<test>} {(DQ ($ Id.VSub_DollarName dlopen_self))} {<Id.Lit_Equals '='>} 
                          {<unknown>}
                        )
                        (C {<test>} {(DQ ($ Id.VSub_DollarName dlopen_self_static))} 
                          {<Id.Lit_Equals '='>} {<unknown>}
                        )
                        (C {<func_warning>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                              <'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
                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                      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 <'X '> ($ Id.VSub_DollarName compile_deplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [44055]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                      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 <'X '> ($ Id.VSub_DollarName finalize_deplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [44078]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [44033 44048 44101 -1]
                        )
                      ]
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName tagname))} 
                                              {<Id.Lit_Equals '='>} {<CXX>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name MACOSX_DEPLOYMENT_TARGET>
                                            var_name: MACOSX_DEPLOYMENT_TARGET
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VTest_Hyphen _>
                                                arg_word: {<10.0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<10.> <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'>}
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_command='>
                                                      name: compile_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName compile_command) <' '> 
                                                        (${ Id.VSub_Name wl) <-bind_at_load>
                                                      )
                                                    }
                                                  spids: [44166]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_command='>
                                                      name: finalize_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName finalize_command) 
                                                        <' '> (${ Id.VSub_Name wl) <-bind_at_load>
                                                      )
                                                    }
                                                  spids: [44177]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44159 44163 44188 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44131 44145]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                      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 <'X '> ($ Id.VSub_DollarName compile_deplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [44201]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                      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 <'X '> ($ Id.VSub_DollarName finalize_deplibs))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [44230]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [44115 44120 44259 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_libs='> name:new_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [44275]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [path]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName notinst_path)}])
                      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 '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [44301 44310 44312 -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: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'new_libs='>
                                                      name: new_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName new_libs) <' -L'> 
                                                        ($ Id.VSub_DollarName path) <'/'> ($ Id.VSub_DollarName objdir)
                                                      )
                                                    }
                                                  spids: [44342]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44330 44339 44351 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44315 44316 44357 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName compile_deplibs)}])
                      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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [44401 44408 44410 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'new_libs='>
                                                      name: new_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName new_libs) <' '> 
                                                        ($ Id.VSub_DollarName deplib)
                                                      )
                                                    }
                                                  spids: [44416]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44413 44414 44423 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44385 44387 44429 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'new_libs='>
                                              name: new_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_libs) <' '> 
                                                ($ Id.VSub_DollarName deplib)
                                              )
                                            }
                                          spids: [44435]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44432 44433 44442 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              name: compile_deplibs
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName new_libs))}
                          spids: [44451]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_command='>
                              name: compile_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName compile_command) <' '> 
                                ($ Id.VSub_DollarName compile_deplibs)
                              )
                            }
                          spids: [44459]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_command='>
                              name: finalize_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName finalize_command) <' '> 
                                ($ Id.VSub_DollarName finalize_deplibs)
                              )
                            }
                          spids: [44467]
                        )
                      ]
                      redirects: []
                    )
                    (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_names: [libdir]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName rpath)}
                                    {($ Id.VSub_DollarName xrpath)}
                                  ]
                                )
                              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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [44523 44530 44532 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_rpath='>
                                                      name: finalize_rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName finalize_rpath) <' '> 
                                                        ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [44538]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44535 44536 44545 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [44476 44488]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [44562]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                              name: hardcode_libdirs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [44565]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [libdir]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {($ Id.VSub_DollarName compile_rpath)}
                            {($ Id.VSub_DollarName finalize_rpath)}
                          ]
                        )
                      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
                                                              left: 
                                                                <Id.Lit_VarLike 'hardcode_libdirs='>
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName libdir))}
                                                          spids: [44624]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [44610 44621]
                                                )
                                              ]
                                              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 '*'>
                                                        }
                                                      ]
                                                      action: []
                                                      spids: [44646 44653 44656 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                    >
                                                                  name: hardcode_libdirs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_libdirs
                                                                    ) ($ Id.VSub_DollarName hardcode_libdir_separator) ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              spids: [44663]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [44659 44660 44671 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44596 44607]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'flag='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'rpath='>
                                                  name: rpath
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName rpath) <' '> 
                                                    ($ Id.VSub_DollarName flag)
                                                  )
                                                }
                                              spids: [44691]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44582 44593]
                                )
                                (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [44726 44733 44735 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'perm_rpath='>
                                                      name: perm_rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName perm_rpath) <' '> 
                                                        ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [44741]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44738 44739 44748 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44702 44713]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'testbindir='>
                                              name: testbindir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(${ Id.VSub_Name ECHO)} 
                                                        {(DQ ($ Id.VSub_DollarName libdir))}
                                                      )
                                                      (C {(${ Id.VSub_Name SED)} {<-e>} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                    stderr_indices: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          spids: [44802]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [44837 44844 44846 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName libdir)}
                                                  spids: [44853]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44849 44851 44855 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dllsearchpath) <':'> 
                                                        ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [44861]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44858 44859 44867 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [44882 44889 44891 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName testbindir)}
                                                  spids: [44898]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44894 44896 44900 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dllsearchpath) <':'> 
                                                        ($ Id.VSub_DollarName testbindir)
                                                      )
                                                    }
                                                  spids: [44906]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [44903 44904 44912 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44764 44799 44918 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName hardcode_libdirs))}
                                  spids: [44956]
                                )
                              ]
                              redirects: []
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'rpath='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              } 
                              {($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              }
                            )
                          ]
                          spids: [44931 44953]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_rpath='>
                              name: compile_rpath
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName rpath))}
                          spids: [44974]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [44981]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                              name: hardcode_libdirs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [44984]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [libdir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName finalize_rpath)}])
                      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
                                                              left: 
                                                                <Id.Lit_VarLike 'hardcode_libdirs='>
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName libdir))}
                                                          spids: [45041]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [45027 45038]
                                                )
                                              ]
                                              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 '*'>
                                                        }
                                                      ]
                                                      action: []
                                                      spids: [45063 45070 45073 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                    >
                                                                  name: hardcode_libdirs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_libdirs
                                                                    ) ($ Id.VSub_DollarName hardcode_libdir_separator) ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              spids: [45080]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [45076 45077 45088 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [45013 45024]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'flag='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'rpath='>
                                                  name: rpath
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName rpath) <' '> 
                                                    ($ Id.VSub_DollarName flag)
                                                  )
                                                }
                                              spids: [45108]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44999 45010]
                                )
                                (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 '*'>
                                            }
                                          ]
                                          action: []
                                          spids: [45143 45150 45152 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_perm_rpath='>
                                                      name: finalize_perm_rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName finalize_perm_rpath) 
                                                        <' '> ($ Id.VSub_DollarName libdir)
                                                      )
                                                    }
                                                  spids: [45158]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [45155 45156 45165 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [45119 45130]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName hardcode_libdirs))}
                                  spids: [45206]
                                )
                              ]
                              redirects: []
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'rpath='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              } 
                              {($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              }
                            )
                          ]
                          spids: [45181 45203]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_rpath='>
                              name: finalize_rpath
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName rpath))}
                          spids: [45224]
                        )
                      ]
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName build_old_libs))} 
                                          {<Id.Lit_Equals '='>} {<yes>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      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 <X> ($ Id.VSub_DollarName compile_command))}
                                              )
                                              (C {($ Id.VSub_DollarName SP2NL)})
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName lo2o))}
                                              )
                                              (C {($ Id.VSub_DollarName NL2SP)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [45261]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_command='>
                                      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 <X> ($ Id.VSub_DollarName finalize_command))}
                                              )
                                              (C {($ Id.VSub_DollarName SP2NL)})
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName lo2o))}
                                              )
                                              (C {($ Id.VSub_DollarName NL2SP)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [45292]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [45231 45254]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<func_generate_dlsyms>} {(DQ ($ Id.VSub_DollarName outputname))} 
                      {(DQ <'@PROGRAM@'>)} {(DQ <no>)}
                    )
                    (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: [45347 45358]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'wrappers_required='>
                              name: wrappers_required
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [45376]
                        )
                      ]
                      redirects: []
                    )
                    (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 {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wrappers_required='>
                                              name: wrappers_required
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [45417]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [45400 45414]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [45387 45397 45424 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <cegcc>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'wrappers_required='>
                                      name: wrappers_required
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [45436]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [45427 45429 45440 -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>} {(DQ ($ Id.VSub_DollarName need_relink))} 
                                                  {<Id.Lit_Equals '='>} {<no>}
                                                )
                                                (C {<test>} 
                                                  {(DQ ($ Id.VSub_DollarName build_libtool_libs))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<yes>}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wrappers_required='>
                                              name: wrappers_required
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [45476]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [45447 45473]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [45443 45444 45483 -1]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName wrappers_required))} 
                                      {<Id.Lit_Equals '='>} {<no>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      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 <X> ($ Id.VSub_DollarName compile_command))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [45509]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compile_command) 
                                        ($ Id.VSub_DollarName compile_rpath)
                                      )
                                    }
                                  spids: [45538]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'exit_status='>
                                      name: exit_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [45550]
                                )
                              ]
                              redirects: []
                            )
                            (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>} {<-f>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  (${ Id.VSub_Name outputname) <S.> (${ Id.VSub_Name objext)
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<func_show_eval>} 
                                      {(SQ <'$RM "$output_objdir/${outputname}S.${objext}"'>)}
                                    )
                                  ]
                                  spids: [45570 45589]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName exit_status)}
                            )
                          ]
                          spids: [45489 45502]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      name: compile_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName compile_shlibpath) ($ Id.VSub_DollarName finalize_shlibpath) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) ($ Id.VSub_DollarName shlibpath_var) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' '> ($ Id.VSub_DollarName compile_command)
                                      )
                                    }
                                  spids: [45627]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [45612 45624]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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
                                      left: <Id.Lit_VarLike 'finalize_command='>
                                      name: finalize_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName finalize_shlibpath) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) ($ Id.VSub_DollarName shlibpath_var) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' '> ($ Id.VSub_DollarName finalize_command)
                                      )
                                    }
                                  spids: [45659]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [45645 45656]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_var='>
                              name: compile_var
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [45677]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_var='>
                              name: finalize_var
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [45680]
                        )
                      ]
                      redirects: []
                    )
                    (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
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [45715]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName perm_rpath)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rpath='>
                                                      name: rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rpath) 
                                                        ($ Id.VSub_DollarName dir) <':'>
                                                      )
                                                    }
                                                  spids: [45730]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_var='>
                                              name: compile_var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName runpath_var) <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                                ($ Id.VSub_DollarName runpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '>
                                              )
                                            }
                                          spids: [45741]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [45697 45708]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [45775]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName finalize_perm_rpath)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rpath='>
                                                      name: rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rpath) 
                                                        ($ Id.VSub_DollarName dir) <':'>
                                                      )
                                                    }
                                                  spids: [45790]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_var='>
                                              name: finalize_var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName runpath_var) <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                                ($ Id.VSub_DollarName runpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '>
                                              )
                                            }
                                          spids: [45801]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [45757 45768]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [45683 45694]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName no_install))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compile_var) 
                                        ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                      )
                                    }
                                  spids: [45841]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      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 <X> ($ Id.VSub_DollarName link_command))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [45853]
                                )
                              ]
                              redirects: []
                            )
                            (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.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [45821 45834]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName hardcode_action))} 
                                      {<Id.Lit_Equals '='>} {<relink>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compile_var) 
                                        ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                      )
                                    }
                                  spids: [45939]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName finalize_var) 
                                        ($ Id.VSub_DollarName finalize_command) ($ Id.VSub_DollarName finalize_rpath)
                                      )
                                    }
                                  spids: [45947]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_warning>} 
                              {(DQ <'this platform does not like uninstalled shared libraries'>)}
                            )
                            (C {<func_warning>} 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                    ch: '`'
                                  ) ($ Id.VSub_DollarName output) <'\' will be relinked during installation'>
                                )
                              }
                            )
                          ]
                          spids: [45919 45932]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName fast_install))} 
                                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'link_command='>
                                          name: link_command
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName finalize_var) 
                                            ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName finalize_rpath)
                                          )
                                        }
                                      spids: [45992]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName fast_install))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  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 <X> 
                                                                ($ Id.VSub_DollarName compile_var) ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                            {(SQ <'s%@OUTPUT@%$progdir/$file%g'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              spids: [46016]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [46000 46013]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [46052]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [45975 45989]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName compile_var) 
                                        ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                      )
                                    }
                                  spids: [46061]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName finalize_var) 
                                        ($ Id.VSub_DollarName finalize_command) ($ Id.VSub_DollarName finalize_rpath)
                                      )
                                    }
                                  spids: [46069]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_command='>
                              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 <X> ($ Id.VSub_DollarName link_command))}
                                      )
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                        {(SQ <'s%@OUTPUT@%'>) 
                                          (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                            ($ Id.VSub_DollarName outputname)
                                          ) (SQ <'%g'>)
                                        }
                                      )
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [46088]
                        )
                      ]
                      redirects: []
                    )
                    (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 $?'>)})
                    (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_names: [var]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName variables_saved_for_relink)}]
                                )
                              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 '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> 
                                                        ($ Id.VSub_DollarName var) <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        )
                                                      }
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      name: relink_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'{ test -z '> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> ($ Id.VSub_DollarName var) 
                                                        <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' || '> 
                                                        ($ Id.VSub_DollarName lt_unset) <' '> ($ Id.VSub_DollarName var) <' || { '> ($ Id.VSub_DollarName var) <'=; export '> 
                                                        ($ Id.VSub_DollarName var) <'; }; }; '> ($ Id.VSub_DollarName relink_command)
                                                      )
                                                    }
                                                  spids: [46222]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [46201 46219]
                                        )
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<eval>} 
                                                      {<Id.Lit_VarLike 'var_value='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\$'>
                                                          ch: '$'
                                                        ) ($ 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
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      name: relink_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName var) <'=; export '> 
                                                        ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                                      )
                                                    }
                                                  spids: [46265]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [46244 46262]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_quote_for_eval>} 
                                          {(DQ ($ Id.VSub_DollarName var_value))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  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: [46285]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'(cd '> 
                                        (command_sub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: (C {<pwd>})
                                          right: <Id.Backtick_Right '`'>
                                        ) <'; '> ($ Id.VSub_DollarName relink_command) <')'>
                                      )
                                    }
                                  spids: [46303]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      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 <X> ($ Id.VSub_DollarName relink_command))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [46317]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [46171 46182]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ <X> ($ Id.VSub_DollarName ECHO))} 
                                      {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName SHELL) <' '> ($ Id.VSub_DollarName progpath) <' --fallback-echo'>)}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName progpath)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                        ch: '\\'
                                      ) <'/'> <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 '\\\\'> ch:'\\') <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'qecho='>
                                              name: qecho
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName SHELL) <' '> 
                                                ($ Id.VSub_DollarName progpath) <' --fallback-echo'>
                                              )
                                            }
                                          spids: [46397]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46378 46395 46404 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'qecho='>
                                              name: qecho
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName SHELL) <' '> 
                                                (command_sub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: (C {<pwd>})
                                                  right: <Id.Backtick_Right '`'>
                                                ) <'/'> ($ Id.VSub_DollarName progpath) <' --fallback-echo'>
                                              )
                                            }
                                          spids: [46410]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46407 46408 46423 -1]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qecho='> name:qecho)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName ECHO)} 
                                                {(DQ <X> ($ Id.VSub_DollarName qecho))}
                                              )
                                              (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [46429]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [46348 46368]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qecho='> name:qecho)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {($ Id.VSub_DollarName ECHO)} 
                                            {(DQ <X> ($ Id.VSub_DollarName ECHO))}
                                          )
                                          (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                            {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                          )
                                        ]
                                        negated: F
                                        stderr_indices: []
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              spids: [46455]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName opt_dry_run)})
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          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
                                              left: <Id.Lit_VarLike 'output='>
                                              name: output
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [46526]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46508 46510 46529 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'exeext='>
                                              name: exeext
                                            )
                                          op: assign_op.Equal
                                          rhs: {<.exe>}
                                          spids: [46552]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                      {(DQ ($ Id.VSub_DollarName outputname))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'outputname='>
                                              name: outputname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                          spids: [46570]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46546 46549 46573 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'exeext='>
                                              name: exeext
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word.Empty)
                                          spids: [46579]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46576 46577 46581 -1]
                                )
                              ]
                              redirects: []
                            )
                            (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
                                              left: <Id.Lit_VarLike 'output_name='>
                                              name: output_name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                                          spids: [46621]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'output_path='>
                                              name: output_path
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                          spids: [46625]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cwrappersource='>
                                              name: cwrappersource
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_path) <'/'> 
                                                ($ Id.VSub_DollarName objdir) <'/lt-'> ($ Id.VSub_DollarName output_name) <.c>
                                              )
                                            }
                                          spids: [46629]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cwrapper='>
                                              name: cwrapper
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_path) <'/'> 
                                                ($ Id.VSub_DollarName output_name) <.exe>
                                              )
                                            }
                                          spids: [46640]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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)}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName opt_dry_run)})
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          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)}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                    )
                                    (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
                                          left: <Id.Lit_LBrace '{'>
                                          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
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [46769 46787]
                                                )
                                              ]
                                              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
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  more_env: []
                                                  do_fork: T
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46594 46604 46817 -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)}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                                      {($ Id.VSub_DollarName output)}
                                    )
                                  ]
                                  spids: [46820 46822 46865 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                    )
                  ]
                  spids: [43880 43881 46879 -1]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [oldlib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName oldlibs)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                      {<Id.Lit_Equals '='>} {<convenience>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName libobjs_save) <' '> 
                                        ($ Id.VSub_DollarName symfileobj)
                                      )
                                    }
                                  spids: [46919]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'addlibs='>
                                      name: addlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName convenience))}
                                  spids: [46927]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [46933]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [46903 46916]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                          {<Id.Lit_Equals '='>} {<module>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'oldobjs='>
                                          name: oldobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName libobjs_save))}
                                      spids: [46956]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'build_libtool_libs='>
                                          name: build_libtool_libs
                                        )
                                      op: assign_op.Equal
                                      rhs: {<no>}
                                      spids: [46962]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [46940 46953]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName old_deplibs) <' '> 
                                        ($ Id.VSub_DollarName non_pic_objects)
                                      )
                                    }
                                  spids: [46969]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName preload))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                                (C {<test>} {<-f>} 
                                                  {(DQ ($ Id.VSub_DollarName symfileobj))}
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'oldobjs='>
                                              name: oldobjs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName oldobjs) <' '> 
                                                ($ Id.VSub_DollarName symfileobj)
                                              )
                                            }
                                          spids: [47003]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46977 47000]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'addlibs='> name:addlibs)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName old_convenience))}
                              spids: [47017]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (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 left:<Id.Lit_VarLike 'gentop='> name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        (${ Id.VSub_Name outputname) <x>
                                      )
                                    }
                                  spids: [47041]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'generated='>
                                      name: generated
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName generated) <' '> 
                                        ($ Id.VSub_DollarName gentop)
                                      )
                                    }
                                  spids: [47052]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_extract_archives>} {($ Id.VSub_DollarName gentop)} 
                              {($ Id.VSub_DollarName addlibs)}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName oldobjs) <' '> 
                                        ($ Id.VSub_DollarName func_extract_archives_result)
                                      )
                                    }
                                  spids: [47068]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [47027 47038]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (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>} {(DQ ($ Id.VSub_DollarName build_libtool_libs))} 
                                          {<Id.Lit_Equals '='>} {<yes>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmds='> name:cmds)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName old_archive_from_new_cmds)}
                                  spids: [47110]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [47084 47107]
                        )
                      ]
                      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
                                          left: <Id.Lit_VarLike 'gentop='>
                                          name: gentop
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                            (${ Id.VSub_Name outputname) <x>
                                          )
                                        }
                                      spids: [47136]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'generated='>
                                          name: generated
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName generated) <' '> 
                                            ($ Id.VSub_DollarName gentop)
                                          )
                                        }
                                      spids: [47147]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName gentop)} 
                                  {($ Id.VSub_DollarName dlprefiles)}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'oldobjs='>
                                          name: oldobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName oldobjs) <' '> 
                                            ($ Id.VSub_DollarName func_extract_archives_result)
                                          )
                                        }
                                      spids: [47163]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [47122 47133]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Subshell
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.ForEach
                                                  iter_names: [obj]
                                                  iterable: 
                                                    (for_iter.Words
                                                      words: [{($ Id.VSub_DollarName oldobjs)}]
                                                    )
                                                  body: 
                                                    (command.DoGroup
                                                      children: [
                                                        (C {<func_basename>} 
                                                          {(DQ ($ Id.VSub_DollarName obj))}
                                                        )
                                                        (C {($ Id.VSub_DollarName ECHO)} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
func_basename_result
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  redirects: []
                                                )
                                                (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>}
                                                    )
                                                  ]
                                                  more_env: []
                                                  do_fork: T
                                                )
                                              ]
                                              negated: F
                                              stderr_indices: []
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [(C {<Id.Lit_Colon ':'>})]
                              spids: [47199 47248]
                            )
                          ]
                          else_action: [
                            (C {($ Id.VSub_DollarName ECHO)} 
                              {(DQ <'copying selected object files to avoid basename conflicts...'>)}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gentop='> name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        (${ Id.VSub_Name outputname) <x>
                                      )
                                    }
                                  spids: [47264]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'generated='>
                                      name: generated
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName generated) <' '> 
                                        ($ Id.VSub_DollarName gentop)
                                      )
                                    }
                                  spids: [47275]
                                )
                              ]
                              redirects: []
                            )
                            (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName gentop))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_oldobjs='>
                                      name: save_oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName oldobjs)}
                                  spids: [47290]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [47294]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'counter='>
                                      name: counter
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [47297]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName obj))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'objbase='>
                                              name: objbase
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                                          spids: [47320]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'oldobjs='>
                                                      name: oldobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName obj)}
                                                  spids: [47342]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [47337 47340 47345 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                                ch: ' '
                                              ) <'/'> <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
                                                              left: <Id.Lit_VarLike 'newobj='>
                                                              name: newobj
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<lt> ($ Id.VSub_DollarName counter) <-> 
                                                              ($ Id.VSub_DollarName objbase)
                                                            }
                                                          spids: [47377]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (C {<func_arith>} {($ Id.VSub_DollarName counter)} 
                                                      {<Id.Lit_Other '+'>} {<1>}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'counter='>
                                                              name: counter
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName func_arith_result)
                                                            }
                                                          spids: [47393]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (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 '\\ '>
                                                                ch: ' '
                                                              ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName newobj) <' '>) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: []
                                                          spids: [47408 47418 47420 -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: [47426 47441]
                                                                )
                                                              ]
                                                              else_action: []
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [47423 47424 47448 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (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)
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'oldobjs='>
                                                      name: oldobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName oldobjs) <' '> 
                                                        ($ Id.VSub_DollarName gentop) <'/'> ($ Id.VSub_DollarName newobj)
                                                      )
                                                    }
                                                  spids: [47475]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [47348 47358 47485 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'oldobjs='>
                                                      name: oldobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName oldobjs) <' '> 
                                                        ($ Id.VSub_DollarName obj)
                                                      )
                                                    }
                                                  spids: [47491]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [47488 47489 47498 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (C {<eval>} 
                          {<Id.Lit_VarLike 'cmds='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) ($ Id.VSub_DollarName old_archive_cmds) 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            )
                          }
                        )
                        (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName cmds))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName func_len_result)}
                              spids: [47527]
                            )
                          ]
                          redirects: []
                        )
                        (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 left:<Id.Lit_VarLike 'cmds='> name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName old_archive_cmds)}
                                      spids: [47561]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [47531 47558]
                            )
                          ]
                          else_action: [
                            (C {<func_verbose>} {(DQ <'using piecewise archive linking...'>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_RANLIB='>
                                      name: save_RANLIB
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName RANLIB)}
                                  spids: [47579]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RANLIB='> name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [47583]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'objlist='>
                                      name: objlist
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [47587]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                      name: concat_cmds
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [47590]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_oldobjs='>
                                      name: save_oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName oldobjs)}
                                  spids: [47593]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [47597]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'last_oldobj='>
                                              name: last_oldobj
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName obj)}
                                          spids: [47616]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (C {<eval>} 
                              {<Id.Lit_VarLike 'test_cmds='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName old_archive_cmds) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              }
                            )
                            (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName test_cmds))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len0='> name:len0)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_len_result)}
                                  spids: [47639]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName len0)}
                                  spids: [47643]
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              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
                                              left: <Id.Lit_VarLike 'len='>
                                              name: len
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_arith_result)}
                                          spids: [47676]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: [47690 47705]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'oldobjs='>
                                                  name: oldobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName objlist)}
                                              spids: [47718]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (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
                                                          left: <Id.Lit_VarLike 'RANLIB='>
                                                          name: RANLIB
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName save_RANLIB)}
                                                      spids: [47741]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [47722 47738]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                        (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
                                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                                      name: concat_cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName concat_cmds) 
                                                      <Id.Lit_TildeLike '~'>
                                                    }
                                                  spids: [47758]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'concat_cmds='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> <concat_cmds> 
                                            <Id.Lit_RBrace '}'> ($ Id.VSub_DollarName old_archive_cmds) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'objlist='>
                                                  name: objlist
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [47775]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'len='>
                                                  name: len
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName len0)}
                                              spids: [47778]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RANLIB='> name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName save_RANLIB)}
                                  spids: [47788]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName objlist)}
                                  spids: [47792]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName oldobjs))} 
                                              {<Id.Lit_Equals '='>} {(DQ <X>)}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        )
                                      }
                                    )
                                  ]
                                  spids: [47796 47813]
                                )
                              ]
                              else_action: [
                                (C {<eval>} 
                                  {<Id.Lit_VarLike 'cmds='> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <old_archive_cmds> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName cmds))} {(SQ <'exit $?'>)})
                  ]
                )
              redirects: []
            )
            (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
                              left: <Id.Lit_VarLike 'old_library='>
                              name: old_library
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [47904]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ ($ Id.VSub_DollarName build_old_libs))} {<Id.Lit_Equals '='>} 
                          {<yes>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'old_library='>
                                  name: old_library
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext))
                                }
                              spids: [47919]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (C {<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName output))})
                    (command.ForEach
                      iter_names: [var]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName variables_saved_for_relink)}]
                        )
                      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 '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> 
                                                ($ Id.VSub_DollarName var) <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'{ test -z '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> ($ Id.VSub_DollarName var) 
                                                <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' || '> 
                                                ($ Id.VSub_DollarName lt_unset) <' '> ($ Id.VSub_DollarName var) <' || { '> ($ Id.VSub_DollarName var) <'=; export '> 
                                                ($ Id.VSub_DollarName var) <'; }; }; '> ($ Id.VSub_DollarName relink_command)
                                              )
                                            }
                                          spids: [47973]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [47952 47970]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<eval>} 
                                              {<Id.Lit_VarLike 'var_value='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                  ch: '$'
                                                ) ($ 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
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName var) <'=; export '> 
                                                ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                              )
                                            }
                                          spids: [48016]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [47995 48013]
                                )
                              ]
                              else_action: [
                                (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName var_value))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          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: [48036]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'relink_command='>
                              name: relink_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'(cd '> 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: (C {<pwd>})
                                  right: <Id.Backtick_Right '`'>
                                ) <'; '> ($ Id.VSub_DollarName SHELL) <' '> ($ Id.VSub_DollarName progpath) <' '> 
                                ($ Id.VSub_DollarName preserve_args) <' --mode=relink '> ($ Id.VSub_DollarName libtool_args) <' @inst_prefix_dir@)'>
                              )
                            }
                          spids: [48058]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'relink_command='>
                              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 <X> ($ Id.VSub_DollarName relink_command))}
                                      )
                                      (C {($ Id.VSub_DollarName Xsed)} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                      )
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [48078]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName hardcode_automatic))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [48118]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [48101 48115]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName opt_dry_run)})
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ForEach
                              iter_names: [installed]
                              iterable: (for_iter.Words words:[{<no>} {<yes>}])
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName installed))} 
                                                      {<Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                  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: [48166 48177]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'output='>
                                                      name: output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName outputname)
                                                      ) <i>
                                                    }
                                                  spids: [48186]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [48199]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              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
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_basename_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [48233]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {(${ Id.VSub_Name SED)} {<-n>} 
                                                                      {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName deplib)}
                                                                    )
                                                                  right: <Id.Backtick_Right '`'>
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {(DQ ($ Id.VSub_DollarName libdir))}
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\`'>
                                                                        ch: '`'
                                                                      ) ($ Id.VSub_DollarName deplib) <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdependency_libs='
                                                                        >
                                                                      name: newdependency_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdependency_libs
                                                                        ) <' '> ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [48288]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48221 48223 48298 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdependency_libs='
                                                                        >
                                                                      name: newdependency_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdependency_libs
                                                                        ) <' '> ($ Id.VSub_DollarName deplib)
                                                                      )
                                                                    }
                                                                  spids: [48304]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48301 48302 48311 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                                      name: dependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName newdependency_libs))}
                                                  spids: [48320]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdlfiles='>
                                                      name: newdlfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [48326]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [lib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dlfiles)}]
                                                )
                                              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
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_basename_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [48361]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {(${ Id.VSub_Name SED)} {<-n>} 
                                                                      {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName lib)}
                                                                    )
                                                                  right: <Id.Backtick_Right '`'>
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {(DQ ($ Id.VSub_DollarName libdir))}
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\`'>
                                                                        ch: '`'
                                                                      ) ($ Id.VSub_DollarName lib) <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdlfiles='
                                                                        >
                                                                      name: newdlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdlfiles
                                                                        ) <' '> ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [48416]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48349 48351 48426 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdlfiles='
                                                                        >
                                                                      name: newdlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdlfiles
                                                                        ) <' '> ($ Id.VSub_DollarName lib)
                                                                      )
                                                                    }
                                                                  spids: [48432]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48429 48430 48439 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlfiles='>
                                                      name: dlfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName newdlfiles))}
                                                  spids: [48448]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdlprefiles='>
                                                      name: newdlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word.Empty)
                                                  spids: [48454]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              iter_names: [lib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dlprefiles)}]
                                                )
                                              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
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
func_basename_result
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [48504]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (C {<eval>} 
                                                              {<Id.Lit_VarLike 'libdir='> 
                                                                (command_sub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (C {(${ Id.VSub_Name SED)} {<-n>} 
                                                                      {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName lib)}
                                                                    )
                                                                  right: <Id.Backtick_Right '`'>
                                                                )
                                                              }
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} {<-z>} 
                                                                  {(DQ ($ Id.VSub_DollarName libdir))}
                                                                )
                                                                (C {<func_fatal_error>} 
                                                                  {
                                                                    (DQ 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\`'>
                                                                        ch: '`'
                                                                      ) ($ Id.VSub_DollarName lib) <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'newdlprefiles='
                                                                        >
                                                                      name: newdlprefiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
newdlprefiles
                                                                        ) <' '> ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  spids: [48559]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48476 48478 48569 -1]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlprefiles='>
                                                      name: dlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName newdlprefiles))}
                                                  spids: [48578]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [48150 48163]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlfiles='>
                                                  name: newdlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [48587]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ForEach
                                          iter_names: [lib]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName dlfiles)}]
                                            )
                                          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 '\\\\'>
                                                            ch: '\\'
                                                          ) <'/'> <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 '\\\\'>
                                                            ch: '\\'
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {(DQ ($ Id.VSub_DollarName lib))}
                                                              spids: [48628]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [48609 48626 48633 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                    right: <Id.Backtick_Right '`'>
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName lib))
                                                                }
                                                              spids: [48639]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [48636 48637 48650 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'newdlfiles='>
                                                          name: newdlfiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName newdlfiles) <' '> 
                                                            ($ Id.VSub_DollarName abs)
                                                          )
                                                        }
                                                      spids: [48656]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlfiles='>
                                                  name: dlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName newdlfiles))}
                                              spids: [48667]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlprefiles='>
                                                  name: newdlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word.Empty)
                                              spids: [48673]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ForEach
                                          iter_names: [lib]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName dlprefiles)}]
                                            )
                                          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 '\\\\'>
                                                            ch: '\\'
                                                          ) <'/'> <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 '\\\\'>
                                                            ch: '\\'
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {(DQ ($ Id.VSub_DollarName lib))}
                                                              spids: [48714]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [48695 48712 48719 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                    right: <Id.Backtick_Right '`'>
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName lib))
                                                                }
                                                              spids: [48725]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [48722 48723 48736 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'newdlprefiles='>
                                                          name: newdlprefiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName newdlprefiles) 
                                                            <' '> ($ Id.VSub_DollarName abs)
                                                          )
                                                        }
                                                      spids: [48742]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlprefiles='>
                                                  name: dlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName newdlprefiles))}
                                              spids: [48753]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {($ Id.VSub_DollarName RM)} {($ Id.VSub_DollarName output)})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tdlname='>
                                              name: tdlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName dlname)}
                                          spids: [48771]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tdlname='>
                                                      name: tdlname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<'../bin/'> ($ Id.VSub_DollarName dlname)}
                                                  spids: [48837]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [48790 48835 48841 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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 TIMESTAMP) <') '> ($ 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 can not 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)}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName installed))} {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName need_relink))} {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ <'relink_command='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) ($ Id.VSub_DollarName relink_command) 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName output)}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [48938 48963]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {
                        (SQ 
                          <
'( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )'
                          >
                        )
                      } {(SQ <'exit $?'>)}
                    )
                  ]
                  spids: [47899 47901 49010 -1]
                )
              ]
              redirects: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<link>})
                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<relink>})
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
        (C {<func_mode_link>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_uninstall
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName opt_debug)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RM='> name:RM)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt))}
                  spids: [49079]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [49085]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmforce='> name:rmforce)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [49088]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_status='> name:exit_status)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [49091]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_install_magic='>
                      name: libtool_install_magic
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName magic))}
                  spids: [49104]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [arg]
              iterable: (for_iter.Args)
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName arg)}
                      arms: [
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RM='> name:RM)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName RM) <' '> 
                                            ($ Id.VSub_DollarName arg)
                                          )
                                        }
                                      spids: [49129]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'rmforce='>
                                      name: rmforce
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [49137]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [49126 49127 49140 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RM='> name:RM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName RM) <' '> ($ Id.VSub_DollarName arg))}
                                  spids: [49147]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [49143 49145 49154 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName files) <' '> ($ Id.VSub_DollarName arg))
                                    }
                                  spids: [49160]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [49157 49158 49167 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (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 left:<Id.Lit_VarLike 'rmdirs='> name:rmdirs)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [49197]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origobjdir='> name:origobjdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName objdir))}
                  spids: [49201]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName file))} {(DQ )} {(DQ <.>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_dirname_result))}
                          spids: [49233]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ <X> ($ Id.VSub_DollarName dir))} 
                                      {<Id.Lit_Equals '='>} {<X.>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objdir='> name:objdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName origobjdir))}
                                  spids: [49256]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [49239 49253]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objdir='> name:objdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                    ($ Id.VSub_DollarName origobjdir)
                                  )
                                }
                              spids: [49265]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName file))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_basename_result))}
                          spids: [49283]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} 
                          {<uninstall>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objdir='> name:objdir)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName dir))}
                              spids: [49301]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} 
                                      {<clean>}
                                    )
                                  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 objdir) <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: []
                                  spids: [49339 49346 49348 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rmdirs='>
                                              name: rmdirs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName rmdirs) <' '> 
                                                ($ Id.VSub_DollarName objdir)
                                              )
                                            }
                                          spids: [49354]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [49351 49352 49361 -1]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [49312 49325]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          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>}
                                            )
                                          ]
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          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>}
                                            )
                                          ]
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName file))})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Id.Lit_Colon ':'>})]
                          spids: [49375 49430]
                        )
                        (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
                                      left: <Id.Lit_VarLike 'exit_status='>
                                      name: exit_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [49450]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [49436 49447]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {(DQ ($ Id.VSub_DollarName rmforce))} 
                                      {<Id.Lit_Equals '='>} {<yes>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [49457 49470]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmfiles='> name:rmfiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName file))}
                          spids: [49480]
                        )
                      ]
                      redirects: []
                    )
                    (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_names: [n]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName library_names)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmfiles='>
                                                      name: rmfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                        ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName n)
                                                      )
                                                    }
                                                  spids: [49539]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                    (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
                                                  left: <Id.Lit_VarLike 'rmfiles='>
                                                  name: rmfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                    ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName old_library)
                                                  )
                                                }
                                              spids: [49562]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName 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 '*'>
                                                    }
                                                  ]
                                                  action: []
                                                  spids: [49601 49608 49610 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rmfiles='>
                                                              name: rmfiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                                ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName dlname)
                                                              )
                                                            }
                                                          spids: [49616]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [49613 49614 49625 -1]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libdir))})
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'rmfiles='>
                                                          name: rmfiles
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                            ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName objdir) <'/'> (${ Id.VSub_Name name) <i>
                                                          )
                                                        }
                                                      spids: [49641]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [49582 49583 49658 -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 <'test "$rmforce" = yes || exit_status=1'>)}
                                                    )
                                                  ]
                                                  spids: [49665 49676]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (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 <'test "$rmforce" = yes || exit_status=1'>)}
                                                    )
                                                  ]
                                                  spids: [49698 49709]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [49661 49662 49734 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [49503 49512]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [49494 49496 49743 -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>} 
                                                          {(DQ ($ Id.VSub_DollarName pic_object))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmfiles='>
                                                      name: rmfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                        ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName pic_object)
                                                      )
                                                    }
                                                  spids: [49813]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [49785 49810]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (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>} 
                                                          {(DQ ($ Id.VSub_DollarName non_pic_object))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmfiles='>
                                                      name: rmfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                        ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName non_pic_object)
                                                      )
                                                    }
                                                  spids: [49859]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [49831 49856]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [49756 49765]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [49747 49749 49875 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} 
                                              {<Id.Lit_Equals '='>} {<clean>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'noexename='>
                                              name: noexename
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName name)}
                                          spids: [49900]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                      left: <Id.Lit_VarLike 'file='>
                                                      name: file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                  spids: [49930]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName name))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'noexename='>
                                                      name: noexename
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                  spids: [49948]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmfiles='>
                                                      name: rmfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                        ($ Id.VSub_DollarName file)
                                                      )
                                                    }
                                                  spids: [49960]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [49911 49913 49968 -1]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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
                                                              left: 
                                                                <Id.Lit_VarLike 'relink_command='>
                                                              name: relink_command
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word.Empty)
                                                          spids: [50009]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (C {<func_source>} 
                                                      {
                                                        ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rmfiles='>
                                                              name: rmfiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                                ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                                )
                                                              )
                                                            }
                                                          spids: [50017]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [49990 49999]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'relink_command='>
                                                          name: relink_command
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word.Empty)
                                                      spids: [50028]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (C {<func_source>} 
                                                  {($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName noexename)
                                                  }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmfiles='>
                                                      name: rmfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                        ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName objdir) <'/'> (${ Id.VSub_Name name) <S.> 
                                                        (${ Id.VSub_Name objext)
                                                      )
                                                    }
                                                  spids: [50050]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DAmp]
                                                              children: [
                                                                (C {<test>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
fast_install
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {<yes>}
                                                                )
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
relink_command
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rmfiles='>
                                                              name: rmfiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                                ($ Id.VSub_DollarName objdir) <'/lt-'> ($ Id.VSub_DollarName name)
                                                              )
                                                            }
                                                          spids: [50096]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50070 50093]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (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: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rmfiles='>
                                                              name: rmfiles
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName rmfiles) <' '> 
                                                                ($ Id.VSub_DollarName objdir) <'/lt-'> (${ Id.VSub_Name noexename) <.c>
                                                              )
                                                            }
                                                          spids: [50131]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50109 50128]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [49978 49987]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [49883 49897]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [49879 49880 50153 -1]
                        )
                      ]
                      redirects: []
                    )
                    (C {<func_show_eval>} 
                      {(DQ ($ Id.VSub_DollarName RM) <' '> ($ Id.VSub_DollarName rmfiles))} {(SQ <'exit_status=1'>)}
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objdir='> name:objdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName origobjdir))}
                  spids: [50175]
                )
              ]
              redirects: []
            )
            (command.ForEach
              iter_names: [dir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName rmdirs)}])
              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: [50198 50209]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName exit_status)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<uninstall>})
                    (C {<test>} {(DQ ($ Id.VSub_DollarName mode))} {<Id.Lit_Equals '='>} {<clean>})
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
        (C {<func_mode_uninstall>} 
          {
            (braced_var_sub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Number 1>
              var_name: 1
              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
              right: <Id.Right_DollarBrace '}'>
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName mode))})
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName generic_help))}
                  spids: [50289]
                )
              ]
              redirects: []
            )
            (C {<func_fatal_help>} {(DQ <'you must specify a MODE'>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName exec_cmd))})
        (C {<func_fatal_help>} 
          {
            (DQ <'invalid operation mode '> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') ($ Id.VSub_DollarName 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: [50326 50337]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName exit_status)}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_libtool_libs='> name:build_libtool_libs)
          op: assign_op.Equal
          rhs: {<no>}
          spids: [50396]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_old_libs='> name:build_old_libs)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [50399]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_old_libs='> 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: [50419 50420 50425 -1]
                      )
                      (case_arm
                        pat_list: [{<Id.Lit_Star '*'>}]
                        action: [(C {<echo>} {<yes>})]
                        spids: [50427 50428 50433 -1]
                      )
                    ]
                    redirects: []
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [50409]
        )
      ]
      redirects: []
    )
  ]
)